2010-04-27 2 views
2

py-amqpFlopsy 모듈을 사용하여 이상한 문제가 발생했습니다. RabbitMQ 서버에 메시지를 보내는 게시자를 작성했으며 지정된 큐로 메시지를 보내려고했습니다. 불가능 인 Flopsy 모듈, 그래서 그것이메시지를 두 개의 RabbitMQ 대기열에 게시하는 대신 py-amqp를 사용합니다.

def __init__(self, routing_key=DEFAULT_ROUTING_KEY, 
        exchange=DEFAULT_EXCHANGE, connection=None, 
        delivery_mode=DEFAULT_DELIVERY_MODE, queue=DEFAULT_QUEUE): 
     self.connection = connection or Connection() 
     self.channel = self.connection.connection.channel() 
     self.channel.queue_declare(queue) # ADDED TO SET UP QUEUE 
     self.exchange = exchange 
     self.routing_key = routing_key 
     self.delivery_mode = delivery_mode 

채널 객체가 PY-amqplib 라이브러리

의 일부인 출판사 객체의 _init__ 방법에 큐를 선언하는 파라미터와 선을 추가 불통

문제는 내가 지정한 큐에 메시지를 보내는 경우에도 메시지를 기본 큐로 보내는 것입니다. 이 시스템에서 우리는 꽤 많은 메시지를 보낼 것으로 예상하고, 쓸모없는 중복을 만드는 시스템을 강조하고 싶지는 않습니다 ... 코드를 디버그하고 py-amqplib 라이브러리 안에 들어가려고했지만 오류 또는 부족한 단계를 파악할 수 없습니다. 또한 코드 외부에서 py-amqplib이라는 문서 형식을 찾을 수 없습니다.

왜 이런 일이 발생하고 어떻게 수정해야하는지에 대한 아이디어가 있습니까?

답변

0

좋아요, 생각났습니다. 다른 사람이 더 좋은 생각이없는 한. 내가 확인했습니다 this tutorial on AMQP 게시자가 대기열을 알아야한다고 가정하고 있었지만 실제로는 그렇지 않습니다. 교환으로 메시지를 보내야하며 소비자는 대기열이 교환과 관련이 있다고 선언합니다. 자습서에서 볼 수 있듯이 송수신에 대한 다른 옵션을 허용합니다.

그래서 나는 게시자와 소비자 모두에게 교환 정보를 포함 시켰으며 queue_declare에 대한 호출을 사용하지 않고 잘 작동하는 것으로 보입니다.

관련 문제