【发布时间】:2021-11-25 11:49:01
【问题描述】:
我正在尝试从消费者那里获取消息并将其发送到队列。为此,我使用Stomp.py 在浏览了文章和帖子后,我编写了以下代码:
import ssl
import stomp
stompurl = "xxxxxxxx.mq.us-west-2.amazonaws.com"
stompuser = "stomuser"
stomppass = "password"
class MyListener(stomp.ConnectionListener):
msg_list = []
def __init__(self):
self.msg_list = []
def on_error(self, frame):
self.msg_list.append('(ERROR) ' + frame.body)
def on_message(self, frame):
self.msg_list.append(frame.body)
conn = stomp.Connection(host_and_ports=[(stompurl, "61614")], auto_decode=True)
conn.set_ssl(for_hosts=[(stompurl, "61614")], ssl_version=ssl.PROTOCOL_TLS)
lst = MyListener()
listener = conn.set_listener('', lst)
conn.connect(stompuser, stomppass, wait=True)
# conn.send(body='Test message', destination='Test_QUEUE')
conn.subscribe('Test_QUEUE', '102')
print(listener.message_list)
import time; time.sleep(2)
messages = lst.msg_list
# conn.disconnect()
print(messages)
使用此代码,我可以向Test_QUEUE 发送消息,但我无法从消费者那里获取所有消息。如何从消费者那里提取所有消息并发布到队列进行处理。
【问题讨论】:
-
对我的回答有任何反馈吗?
标签: python activemq stomp stomp.py