问题标签 [python-pika]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
831 浏览

rabbitmq - pika 中 add_callback_threadsafe() 方法有什么用?

pika文档中的描述中,我无法完全了解add_callback_threadsafe()方法的作用。它说,“在此连接线程的上下文中尽快请求调用给定函数”。具体来说,这个回调与哪个事件相关联?由于add_callback_threadsafe()没有收到任何“事件”参数,如何pika知道何时调用该回调?

另外,在官方的例子中,为什么我们甚至需要在 do_work() 方法中构建偏函数并注册回调?我们不能在ack_message()结束后调用方法time.sleep()吗?

0 投票
1 回答
839 浏览

amazon-web-services - 远程连接到 RabbitMQ 实例(在 AWS 上创建)

我无法连接到 RabbitMQ 实例(这是我第一次这样做)。我已经在 AWS 上启动了一个,并且可以访问我能够访问的管理面板。

我正在尝试使用以下代码连接到 python/pika 中的 RabbitMQ 服务器:

pika.exceptions.IncompatibleProtocolError: StreamLostError: ("Stream connection lost: ConnectionResetError(54, 'Connection reset by peer')",)当我运行上述内容时,我得到了。

0 投票
0 回答
195 浏览

python - 如何重新连接rabbitMQ pika python?

如果连接丢失,有没有办法“重新连接”到rabbitMQ?如何重新连接到rabbitmq?最好的方法是什么?有什么“策略”吗?

0 投票
0 回答
173 浏览

python-3.x - Rabbitmq pika 缺少心跳

以下是我的要求。

  1. 拥有一个可重复用于跨多个线程发布的连接池
  2. 在单独的连接上使用

所以我尝试测试一些构建连接池的解决方案。

当我运行上面的连接时,连接被创建并且它保持空闲直到主线程完成。所以它可以工作,但我检查了 rabbitmq 日志,它显示以下内容

所以这里发生的是连接关闭,因为客户端没有发送心跳。当我尝试实现连接池时,这会产生一个问题。当我创建连接池时,它会自动关闭。

我可以找到的解决方法是将心跳设置为 0,这意味着我正在禁用心跳检查(不推荐)。有没有人有解决方法?

提前致谢

0 投票
0 回答
276 浏览

python - 如何在 pika 中运行异步 basic_consume

我想在 pika basic_consume 中运行消息回调异步。这可能吗?怎么做?我们已经为其他任务运行了一个异步循环,这个消费者使用带有异步连接的 httpx 来调用内部服务。

这是我们当前的 Consumer 类:

0 投票
0 回答
8 浏览

docker - 运行 docker compose 时 pika 异常 amqpconnectionerror 错误

我有一个依赖于rabbitmq 的python docker 容器。我尝试使用 docker-compose 文件链接这两个容器:

我在 python 应用程序容器中收到以下错误 -

这是 AMQP_SERVER_URL=amqp://guest:guest@localhost:5672,

我尝试先运行 rabbitmq 容器,然后运行 ​​python 容器来检查它是否有效,但它会引发相同的错误。

0 投票
0 回答
63 浏览

python - 将消息从 RabbitMQ 队列发送到 Websocket 连接,反之亦然

我正在尝试从活动的 WebSocket 连接(具有活动的订阅并正在接收消息)将消息发布到 RabbitMQ 队列,然后使用该消息并将其发送回相同的 WS 连接。我正在使用 Python 的websocketpika库来执行此操作。问题是,在处理消费的消息时,我不知道如何访问 websocket 对象来实际发送消息。同样的问题是将消息发布到队列。这是它的外观:

websocket.py

兔子MQ.py

一般流程: 从 WS 接收消息->将消息发布到队列->从队列中消费消息->通过 WS 发送回消息

有没有关于如何做到这一点的提示?

0 投票
0 回答
18 浏览

python - 发布者/消费者用于在 eth0 int 中捕获 AMQP 包,但是当我运行此代码时,我只能在环回接口中捕获数据包

目前我只能在环回接口中捕获数据包,我在rabbitmq.conf中设置了tcp默认值,一切似乎都很好,但我相信pika.blockingconnection不允许我通过wireshark中的etho/epsn03接口捕获数据包和使用 ubuntu 20.04

链接到这里的代码。

请分享任何建议和解决方案。

0 投票
0 回答
51 浏览

rabbitmq - 当我从 API 热加载数据时,RabbitMQ 以 EOF 终止,但是如果我将它们保存到磁盘并运行它并运行结果它可以工作

我目前正在将一些数据加载到数据框中,从网络上提取几个代码(证券)的数据,我想遍历这些证券并在特定队列中创建消息。

我有以下代码应该按预期工作。

================== 输出 ======================

Buuuut,如果我不尝试在队列中分派消息,而是将它们保存到 .json 文件中,而不是从 API 获取“热”数据,而是加载先前创建的文件,它可以正常工作。我无法理解为什么会发生这种情况,因为我没有理由相信我正在访问的 API 和本地 rabbitmq 服务器之间存在冲突

0 投票
0 回答
160 浏览

python - pika.exceptions.IncompatibleProtocolError: StreamLostError: ('传输指示 EOF',)

我在我的python脚本中使用 pika 时遇到错误,它将从 rabbitmq 获取输入并将处理它并应该等待下一个,但是队列为空的我遇到错误,它不应该给出任何错误脚本应该启动并等待下一条消息的到来。

我的 python 代码看起来像:

任何人都可以在这里帮助我吗?