使用 pika 发布消息时如何添加标头键:值对

2023-11-26

我正在编写一个自动化测试来测试消费者。到目前为止,我在发布消息时不需要包含标头,但现在我需要了。而且似乎缺乏文档。

这是我的出版商:

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

向该邮件添加标头的正确方法是什么?


你会使用鼠兔.基本属性添加标题。

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 的官方文档确实没有完全涵盖这种情况,但文档确实列出了规范。我强烈建议您添加书签this页面,如果您要继续使用鼠兔。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pika 发布消息时如何添加标头键:值对 的相关文章

随机推荐

  • 如何在Spring-data Rest中更新引用对象?

    Example class 课程和教师具有多对一的关系 如何通过 Spring data Rest 更改某门课程的教师 GET http localhost 7070 study spring data course 2 回复 name C
  • 为什么在接收更改事件时不更改通知程序

    我发布了一个答案Java TableModelListener 和 Live Feed Listener 但我收到了一条评论 kleopatra nonono you never change the notifier in receivi
  • 杀死另一个应用程序并清除其数据

    我正在开发一种工具 可以杀死选定的应用程序并清除其所有数据 有点模拟this我只有可用的包名称 我不确定它是否有效 但你可以做的是获取应用程序的进程 ID 和你拥有的包名称 然后调用killProcess 以进程ID为参数的方法 EDIT1
  • 如何在 AlternateView 上设置编码

    我正在通过以下方式创建邮件正文 using var streamWriter new StreamWriter fooFileName false Encoding UTF8 streamWriter Write fooMessage 现在
  • Android 的 overridePendingTransition 和 singleInstance

    将活动的 launchMode 更改为 singleInstance 后 我遇到了 overridePendingTransition 不起作用的问题 我很想听听您的意见 我正在开发一个应用程序来浏览一副纸牌 为了简单起见 我们假设应用程序
  • 是否有一个函数或包可以模拟从 lm() 返回的对象的预测?

    是否有一个类似于 runif rnorm 等的单一函数可以为线性模型生成模拟预测 我可以自己编写代码 但是代码很丑陋 我认为这是以前有人做过的事情 slope 1 5 intercept 0 x as numeric 1 10 e rnor
  • C 预处理器和操作顺序

    我正在学习C 但我不明白这一点 define square x x x a square 2 3 a 11 当这个运行时 为什么a最终成为11 它扩展到2 3 2 3 这相当于2 3 2 3 使用括号来修复它 define square x
  • 我是否总是需要转义非“文字”字符串中的元字符?

    似乎有一个包含字符的字符串 or 在正则表达式处理期间被拒绝 我可以理解这些是保留字符 我需要转义它们 所以如果我这样做 string replaceAll pattern 这有效 在哪里pattern是任何以以下开头的字符串 问题 有没有
  • React-native:“无法连接到开发服务器”- Android 应用程序

    我正在遵循启动react js 的指南 http code tutsplus com tutorials creating a dictionary app using react native for android cms 24969我
  • 当某些条件成立时 Scala FoldLeft

    如何在 Scala 中模拟以下行为 即在满足累加器上的某些特定条件时继续折叠 def foldLeftWhile B z B p B gt Boolean op B A gt B B 例如 scala gt val seq Seq 1 2
  • 如何使用 Cucumber 测试确认对话框?

    我正在将 Ruby on Rails 与 Cucumber 和 Capybara 一起使用 我将如何测试一个简单的确认命令 你确定吗 另外 我在哪里可以找到有关此问题的更多文档 硒驱动程序现在支持这个 从 Capybara 中 您可以像这样
  • 为什么 std::array::size constexpr 具有简单类型(int、double、...)而不是 std::vector (GCC)?

    以下代码 std array
  • js while(true){} 阻止事件循环

    setInterval function console log hello 2000 while true hello 永远不会被打印 我认为事件循环在不同的线程中运行 但这里似乎 while 循环 阻止了 事件循环 的执行 有人可以解释
  • 从 FF 中的选择框中删除轮廓

    是否可以删除选择元素中所选项目周围的虚线 我尝试添加outlineCSS 中的属性但它不起作用 至少在 FF 中不起作用 Update在继续删除大纲之前 请阅读本文 http www outlinenone com Well 双像素的答案简
  • 将模板传递给“rails new”

    当调用 rails new 时 显然可以通过 m 命令行参数传递某种模板或设置脚本 我发现这个通过https github com fortuity rails3 mongoid devise wiki Tutorial 演练 And ht
  • 由空格分隔的两个字符串自动连接

    我刚刚发现了一些非常有趣的东西 这是由我的打字错误引入的 这是一个非常简单的代码脚本示例 printf A B 结果将是 gt AB 有人可以解释这是如何发生的吗 作为 C 标准的一部分 相邻的字符串文字被连接起来 对于C 引用C99 但C
  • 谷歌分析 API V3 / OAuth 2

    我拼命地试图自己解决这个问题 并且不想带着这个问题来解决这个问题 但我已经束手无策了 不感谢 api oauth 文档 我正在 PHP 中工作 我试图避免使用Google Client and AnalyticsService类 通过使用
  • Android 中的并发文件访问

    我知道许多操作系统对文件系统执行某种锁定以防止视图不一致 Java 和 或 Android 对文件访问的线程安全性有任何保证吗 在我自己编写并发代码之前 我想尽可能多地了解这一点 如果我错过了已回答的类似问题 请随时关闭此线程 谢谢 And
  • 服务发现如何与现代 docker/docker-compose 一起工作?

    我正在使用 Docker 1 11 1 和 docker compose 1 8 0 rc2 在过去的美好时光 所以 去年 你可以建立一个docker compose yml像这样的文件 app image myapp frontend i
  • 使用 pika 发布消息时如何添加标头键:值对

    我正在编写一个自动化测试来测试消费者 到目前为止 我在发布消息时不需要包含标头 但现在我需要了 而且似乎缺乏文档 这是我的出版商 class RMQProducer object def init self host exchange ro