python使用rabbitmq发送消息和接收消息数据

发送消息

python 复制代码
import pika

# 设置RabbitMQ连接参数(更改账号密码)
credentials = pika.PlainCredentials('username', 'password')
# 更改为自己的服务器地址
parameters = pika.ConnectionParameters('192.168.0.157', 5672, '/', credentials)

# 建立到RabbitMQ的连接
connection = pika.BlockingConnection(parameters)
channel = connection.channel()

# 声明队列,确保它存在
queue_name = 'radarQueue'  # 队列名字
channel.queue_declare(queue=queue_name, durable=True, passive=True)

# 要发送的消息
crawled_data = {'key': 'value00'}

# 将字典转换为JSON字符串
crawled_data_json = json.dumps(crawled_data)

# 发布消息到指定队列
channel.basic_publish(exchange='',
                      routing_key=queue_name,
                      body=crawled_data_json.encode("utf-8"),  # 要传字节 
                      properties=pika.BasicProperties(
                          delivery_mode=2,  # 使消息持久化
                      ))
print(crawled_data)

# 关闭连接
connection.close()

接收消息

python 复制代码
import pika

# 设置RabbitMQ连接参数
credentials = pika.PlainCredentials('username', 'password')
parameters = pika.ConnectionParameters('192.168.0.157', 5672, '/', credentials)

# 建立到RabbitMQ的连接
connection = pika.BlockingConnection(parameters)
channel = connection.channel()

# 声明队列,确保它存在
queue_name = 'radarQueue'
channel.queue_declare(queue=queue_name, durable=True, passive=True)

# 定义一个回调函数,用来处理队列中的消息
def callback(ch, method, properties, body):
    print(f" [x] Received {body}")

# 告诉RabbitMQ从队列中接收消息
channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)

print(' [*] Waiting for messages. To exit press CTRL+C')
try:
    # 开始接收消息,这会一直运行直到被中断
    channel.start_consuming()
except KeyboardInterrupt:
    channel.stop_consuming()

# 关闭连接
connection.close()
相关推荐
华研前沿标杆游学20 小时前
2026年走进洛阳格力工厂参观游学
python
Carl_奕然20 小时前
【数据挖掘】数据挖掘必会技能之:A/B测试
人工智能·python·数据挖掘·数据分析
AI小怪兽21 小时前
基于YOLOv13的汽车零件分割系统(Python源码+数据集+Pyside6界面)
开发语言·python·yolo·无人机
wszy180921 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
Eric.Lee202121 小时前
python实现 mp4转gif文件
开发语言·python·手势识别·手势交互·手势建模·xr混合现实
EntyIU21 小时前
python开发中虚拟环境配置
开发语言·python
wszy180921 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos
kaizq21 小时前
AI-MCP-SQLite-SSE本地服务及CherryStudio便捷应用
python·sqlite·llm·sse·mcp·cherry studio·fastmcp
!chen1 天前
Error: error:0308010C:digital envelope routines::unsupporte
python
小北方城市网1 天前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存