python 发送和接收ActiveMQ消息的实例

作者:像风一样的自由 时间:2022-08-23 18:45:20 

ActiveMQ是java开发的消息中间件服务。可以支持多种协议(AMQP,MQTT,OpenWire,Stomp),默认的是OpenWire。而python与ActiveMQ的通信使用的是Stomp协议。而如果你的服务没有开启则需要配置开启。

首先需要安装python的stomp库。

命令如下:


pip install stomp.py

接着,就是上代码了具体如下:


# -*-coding:utf-8-*-
import stomp
import time

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

# 推送到队列queue
def send_to_queue(msg):
 conn = stomp.Connection10([('127.0.0.1',61613)])
 conn.start()
 conn.connect()
 conn.send(queue_name, msg)
 conn.disconnect()

#推送到主题
def send_to_topic(msg):
 conn = stomp.Connection10([('127.0.0.1',61613)])
 conn.start()
 conn.connect()
 conn.send(topic_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)
 time.sleep(1) # secs
 conn.disconnect()

##从主题接收消息
def receive_from_topic():
 conn = stomp.Connection10([('127.0.0.1',61613)])
 conn.set_listener(listener_name, SampleListener())
 conn.start()
 conn.connect()
 conn.subscribe(topic_name)
 while 1:
   send_to_topic('topic')
   time.sleep(3) # secs

conn.disconnect()

if __name__=='__main__':
 # send_to_queue('len 123')
 # receive_from_queue()

receive_from_topic()

但是上述只是发送文本类型的消息,除此之外,ActiveMQ还支持MapMessage、ObjectMessage、BytesMessage、和StreamMessage等多个消息类型。

来源:https://blog.csdn.net/five3/article/details/79569587

标签:python,发送,接收,ActiveMQ
0
投稿

猜你喜欢

  • Python之ThreadPoolExecutor线程池问题

    2022-03-24 10:25:00
  • Python time三种时间转换小结

    2022-05-15 18:38:20
  • Python中正则表达式的详细教程

    2023-07-14 23:53:14
  • PhpStorm配置debug环境的详细过程

    2023-05-26 20:04:32
  • python并发编程多进程 模拟抢票实现过程

    2022-03-07 11:53:05
  • python实现同时给多个变量赋值的方法

    2021-10-09 07:02:50
  • TensorFlow卷积神经网络MNIST数据集实现示例

    2023-04-20 18:33:12
  • 在vue.js中使用JSZip实现在前端解压文件的方法

    2024-04-22 22:15:34
  • opencv+python实现均值滤波

    2023-10-21 15:00:58
  • python通过ffmgep从视频中抽帧的方法

    2023-10-02 12:35:39
  • SqlServer中的日期与时间函数

    2011-11-03 17:12:34
  • 使用Python-pptx 告别繁琐的幻灯片制作

    2021-12-10 12:03:23
  • Pycharm使用Database Navigator连接mysql数据库全过程

    2024-01-15 03:58:35
  • Django中更改默认数据库为mysql的方法示例

    2024-01-23 03:19:56
  • 如何将一个CSV格式的文件分割成两个CSV文件

    2022-02-17 01:24:29
  • Python3如何使用多线程升程序运行速度

    2023-02-06 05:11:42
  • Python识别快递条形码及Tesseract-OCR使用详解

    2022-10-20 01:32:32
  • 基于keras输出中间层结果的2种实现方式

    2023-10-11 16:05:49
  • MySQL深度分页(千万级数据量如何快速分页)

    2024-01-26 12:33:54
  • 属性与 @property 方法让你的python更高效

    2023-02-02 08:20:18
  • asp之家 网络编程 m.aspxhome.com