首页 > 解决方案 > Rabbitmq pika.BasicProperties 不在消息中发送属性

问题描述

我正在使用 pika 向 rabbitmq 发送消息。我需要发送其他属性,所以我使用 pika.BasicProperties,但是当我在 Wireshark 中看到此消息时,没有添加任何属性。

我的代码:

import pika, uuid

connection = pika.BlockingConnection(
    pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='test_60', durable=True, arguments={'x-message-ttl' : 21600000})

routingKey = "test_server"
message = '{"test_int":268,"Timestamp":1610022012203}'

correlation_id = str(uuid.uuid4())
reply_to = "test_60"
message_type = "SendRequest"

channel.basic_publish(exchange='',routing_key=routingKey,
                body=message,properties=pika.BasicProperties(
                headers={"testId": "60"},
                delivery_mode=2,
                correlation_id = correlation_id,
                reply_to = reply_to,
                type = message_type))

print('message sent')
print(correlation_id)

在 Wireshark 中,这条消息看起来像这样,所以没有属性,我不知道这个例子有什么问题。

在此处输入图像描述

标签: pythonrabbitmqpika

解决方案


 prop = pika.BasicProperties(
            content_type='application/json',
            content_encoding='utf-8',
            headers={'key': 'value'},
            delivery_mode = 1,
        )

        channel.basic_publish(
                exchange='',
                routing_key=qname,
                properties=prop,
                body='{message: hello}'
            )

用户界面:

在此处输入图像描述

线鲨:

在此处输入图像描述


推荐阅读