【发布时间】:2019-12-27 08:01:09
【问题描述】:
我正在设计一个分布式项目,在 win10 上。但是,所有消息都通过以下代码发送给一位消费者。它在处理它们之前缓存所有内容。正确的方法是什么?
# -*-coding:utf-8-*-
import stomp
import time
#http://localhost:8161
queue_name = '/queue/SampleQueue'
topic_name = '/topic/SampleTopic'
listener_name = 'SampleListener'
class SampleListener(object):
def on_message(self, headers, message):
print ('headers: %s' % headers)
print ('message: %s' % message)
time.sleep(1) # blocking consumer here
def send_to_queue(msg):
conn = stomp.Connection10([('127.0.0.1',61613)])
conn.start()
conn.connect()
for i in range(50):
conn.send(queue_name, msg)
conn.disconnect()
def receive_from_queue():
conn = stomp.Connection10([('127.0.0.1',61613)])
conn.set_listener(listener_name, SampleListener())
conn.start()
conn.connect()
#conn.subscribe(queue_name, {'ack': 'client-individual', 'activemq.prefetchSize': 0})
conn.subscribe(queue_name, {'activemq.prefetchSize':1, })
time.sleep(600) # secs
conn.disconnect()
if __name__=='__main__':
if True:
send_to_queue('sample text 123')
receive_from_queue()
【问题讨论】:
标签: python activemq stomp prefetch