システムをmorbidの使用からrabbitmqに移行しようとしていますが、デフォルトで提供されているのと同じブロードキャスト動作のmorbidを取得できないようです。ブロードキャストとは、メッセージがキューに追加されると、すべてのコンシューマーがそれを受信することを意味します。うさぎの場合、メッセージが追加されると、すべてのリスナーにラウンドロビンスタイルで配布されます。
同じ種類のメッセージ配信を実現する方法を教えてもらえますか?
以下で使用されているストンプライブラリは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()