Rabbitmq pika.BasicProperties 不在消息中发送属性

时间:2021-01-07 15:03:04

标签: python rabbitmq pika

我正在使用 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 中,这条消息看起来像这样,所以没有属性,我不知道这个例子有什么问题。

enter image description here

1 个答案:

答案 0 :(得分:1)

 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}'
            )

界面:

enter image description here

Wireshark:

enter image description here

相关问题