使用python STOMP从ActiveMQ队列接收单个消息

2024-10-17 06:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

  • 嗨,我在用跺脚.py用于发送和接收来自
    的消息的模块 使用python的ActiveMQ。在
  • 在接收消息时,侦听器将在 指定的睡眠时间。在
  • 但我只需要读一条信息。在java中是可能的。怎么 我可以使用STOMP从ActiveMQ读取一条消息吗?在

这是我正在测试的监听器脚本

import stomp
import time

class SampleListener(object):
  def on_message(self, headers, msg):
    print(msg)

conn = stomp.Connection([('localhost',61613)]) 
conn.set_listener('SampleListener', SampleListener()) 
conn.start() 
conn.connect() 
conn.subscribe(destination='queue_name', id=1, ack='auto')
time.sleep(10) # secs 
conn.disconnect()

Tags: 模块pyimport信息消息time时间msg
1条回答
网友
1楼 · 发布于 2024-10-17 06:22:11

如果您只想用STOMP一次读取一条消息,那么唯一的方法就是使用一个ack模式,例如client或client individual,这样,只有当客户机为它所拥有的消息发送了一个显式的ack时,才会向它发送新的消息。这还需要将prefetch值设置为1,这样代理就不会向客户机发送一批消息。在

STOMP确认模式在规范here中定义。代理的STOMP支持文档是here。客户端使用头设置预取activemq.prefetchSize'在订阅上,如ActiveMQ文档中所列。在

相关问题 更多 >