我试图将系统从使用 morbid 转移到 rabbitmq,但我似乎无法获得默认提供的相同广播行为 morbid。通过广播,我的意思是当一条消息被添加到队列中时,每个消费者都会收到它。使用rabbit,当添加消息时,它们会以循环方式分发给每个听众。
谁能告诉我如何实现相同的消息分发?
下面使用的 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()