使用Python向RabbitMQ发送JSON数据只需要一个send_json方法

发布时间:2024年01月12日

发送JSON数据

通过调用rabbitmq.send_json(channel, user, queue=result)能够更简单的实现发送JSON数据。

生产者

import json
import rabbitmq

# 建立连接
connection = rabbitmq.get_connection()

# 创建管道
channel = connection.channel()

# 创建队列
queue_name = "user_manager"
result = channel.queue_declare(queue=queue_name)

# 向队列中写入数据
data = [
    {"id": 1, "name": "张三", "age": 23},
    {"id": 2, "name": "李四", "age": 24},
    {"id": 3, "name": "王五", "age": 35},
]
for user in data:
    rabbitmq.send_json(channel, user, queue=result)

# 关闭连接
connection.close()

消费者

import json
import rabbitmq

# 创建连接
connection = rabbitmq.get_connection()

# 创建管道
channel = connection.channel()

# 创建队列
queue_name = "user_manager"
channel.queue_declare(queue=queue_name, durable=False)


def callback(ch, method, properties, body):
    # 解析队列中的每一条数据
    ch.basic_ack(delivery_tag=method.delivery_tag)
    data = body.decode("utf8")
    print(json.loads(data))


# 告诉rabbitmq,用callback来接收消息
channel.basic_consume(queue_name, callback)

# 开始接收信息,并进入阻塞状态,队列里有信息才会调用callback进行处理
try:
    channel.start_consuming()
finally:
    connection.close()
文章来源:https://blog.csdn.net/qq_37703224/article/details/135561476
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。