编写python脚本接收ActiveMQ_Receiver消息
时间: 2024-01-17 15:03:36 浏览: 164
Sender-receiver 消息
好的,可以尝试使用pymqi和stomp.py这两个库来实现。首先安装这两个库:pip install pymqi stomp.py
然后使用pymqi连接到ActiveMQ,在连接成功后,使用stomp.py订阅消息,可以按照以下代码示例来实现:
```python
import stomp
import pymqi
host = 'localhost'
port = '61613'
channel = 'SYSTEM.ADMIN.SVRCONN'
queue_manager = 'QM'
queue_name = 'QUEUE.NAME'
class MQListener(stomp.ConnectionListener):
def on_message(self, headers, message):
print('Received message: {}'.format(message))
def on_error(self, headers, message):
print('Error received: {}'.format(message))
conn = stomp.Connection(host_and_ports=[(host, port)])
conn.set_listener('', MQListener())
queue_manager = pymqi.connect(queue_manager, channel, '{}({})'.format(host, port))
queue = pymqi.Queue(queue_manager, queue_name)
queue.get()
pymqi.disconnect(queue_manager)
conn.subscribe(destination='/queue/{}'.format(queue_name), id=1, ack='auto')
conn.start()
conn.connect()
while True:
pass
```
这段代码中,我们首先定义了一个MQListener类,用于接收到消息后打印消息内容。然后创建了一个Connection对象,使用set_listener()方法将MQListener对象加入进去。使用pymqi连接到ActiveMQ,通过Queue.get()方法获取一条消息后,执行pymqi.disconnect()方法退出连接。接着使用stomp.py的subscribe()方法订阅消息,使用start()方法启动连接,然后进入死循环等待消息的到来,当有消息到来时就会进入on_message()方法,处理消息。
阅读全文