Python 如何在使用pika发布消息时添加标题键:值对
我正在编写一个自动测试来测试消费者。到目前为止,我在发布消息时不需要包含标题,但现在我需要。而且它似乎缺少文档 这是我的出版商:Python 如何在使用pika发布消息时添加标题键:值对,python,rabbitmq,amqp,pika,Python,Rabbitmq,Amqp,Pika,我正在编写一个自动测试来测试消费者。到目前为止,我在发布消息时不需要包含标题,但现在我需要。而且它似乎缺少文档 这是我的出版商: class RMQProducer(object): def __init__(self, host, exchange, routing_key): self.host = host self.exchange = exchange self.routing_key = routing_key de
class RMQProducer(object):
def __init__(self, host, exchange, routing_key):
self.host = host
self.exchange = exchange
self.routing_key = routing_key
def publish_message(self, message):
connection = pika.BlockingConnection(pika.ConnectionParameters(self.host))
channel = connection.channel()
message = json.dumps(message)
channel.basic_publish(exchange=self.exchange,
routing_key=self.routing_key,
body=message)
我想做smtn,比如:
channel.basic_publish(exchange=self.exchange,
routing_key=self.routing_key,
body=message,
headers={"key": "value"})
向该邮件添加标题的正确方法是什么?我不能说我从哪里得到的,但我喜欢这样做:
props = pika.BasicProperties({'headers': {'key': 'value'}})
channel.basic_publish(exchange=self.exchange,
routing_key=self.routing_key,
body=message, properties = props)
您可以使用添加标题
channel.basic_publish(exchange=self.exchange,
routing_key=self.routing_key,
properties=pika.BasicProperties(
headers={'key': 'value'} # Add a key/value header
),
body=message)
pika的官方文档确实没有完全涵盖这个场景,但文档中确实列出了规范。如果您打算继续使用pika,我强烈建议您将页面添加书签。官方文件如下:
hdrs = {u'': u' ',
u'': u'',
u'': u''}
properties = pika.BasicProperties(app_id='example-publisher',
content_type='application/json',
headers=hdrs)
你可以看看我在这里为pika举的一个例子,关于如何添加标题。这里还有我自己的amqp库的另一个例子