Я пытаюсь перевести систему с использования morbid на rabbitmq, но я не могу получить ту же самую трансляцию поведения, предоставляемую по умолчанию. Под трансляцией я подразумеваю, что когда сообщение добавляется в очередь, каждый потребитель получает его. Что касается кролика, то при добавлении сообщения они распределяются в стиле круговой проверки каждому слушателю.
Может кто-нибудь сказать мне, как добиться такого же распространения сообщений?
Используемая ниже библиотека stomp: http://code.google.com/p/stomppy/
Если не справиться с stomp, даже пример amqplib действительно поможет.
Мой код в настоящее время выглядит следующим образом
Потребитель
import stomp
class MyListener(object):
def on_error(self, headers, message):
print 'recieved an error %s' % message
def on_message(self, headers, message):
print 'recieved a message %s' % message
conn = stomp.Connection([('0.0.0.0', 61613), ('127.0.0.1', 61613)], 'user', 'password')
conn.set_listener('', MyListener())
conn.start()
conn.connect(username="user", password="password")
headers = {}
conn.subscribe(destination='/topic/demoqueue', ack='auto')
while True:
pass
conn.disconnect()
И отправитель выглядит так
import stomp
class MyListener(object):
def on_error(self, headers, message):
print 'recieved an error %s' % message
def on_message(self, headers, message):
print 'recieved a message %s' % message
conn = stomp.Connection([('0.0.0.0', 61613), ('127.0.0.1', 61613)], 'user', 'password')
conn.set_listener('', MyListener())
conn.start()
conn.connect(username="user", password="password")
headers = {}
conn.subscribe(destination='/topic/demotopic', ack='auto')
while True:
pass
conn.disconnect()