我目前正在编写两个脚本,使用stomp客户机库订阅消息服务器写入.py写入数据和阅读.py以获取数据。在
如果我开始阅读.py先运行写入.py,写入.py正确接收消息。在
但是,如果我运行写入.py先运行阅读.py,阅读.py不会检索以前发送到服务器的任何邮件。在
以下是脚本的相关部分。在
如何实现写入.py将保留到阅读.py订阅并检索它们?在
写入.py
def writeMQ(msg):
queue = '/topic/test'
conn = stomp.Connection(host_and_ports=[(MQ_SERVER, MQ_PORT)])
try:
conn.start()
conn.connect(MQ_USER, MQ_PASSWD, wait=True)
conn.send(body=msg, destination=queue, persistent=True)
except:
traceback.print_exc()
finally:
conn.disconnect()
return
阅读.py
^{pr2}$
被发送到的信息是一个问题。在
Apollo Documentation描述了主题和队列之间的区别,如下所示:
因此,当阅读.py首先启动并侦听,主题识别订阅并转发消息。但当写入.py首先启动消息,因为没有订阅的客户端。在
所以可以使用队列而不是主题。如果服务器能够创建静默队列,只需设置
我不知道使用的是哪个版本的stomp,但找不到参数
^{pr2}$无论如何,持久化并不是正确的方法,因为它仍然不允许为以后的连接简单地保留消息,而是在服务器发生故障时保存消息。在
你可以使用
改为主题消息的标题。在
相关问题 更多 >
编程相关推荐