22得票1回答
皮卡加兔子消息队列:将basic_qos设置为prefetch=1仍然似乎会消耗队列中的所有消息

我有一个Python工作客户端,可以启动10个工作进程,每个进程都连接到一个RabbitMQ队列。就像这样:#!/usr/bin/python worker_count=10 def mqworker(queue, configurer): connection = pika.Blo...

9得票1回答
使用pika的start_consuming方法中断线程

我有一个线程,使用pika监听来自rabbitmq的新消息。在使用BlockingConnection配置连接之后,我开始通过start_consuming消费消息。如何中断启动消费方法调用,例如以优雅的方式停止线程?

10得票2回答
一次性消费多条消息

我正在使用外部服务(Service)处理一些特定类型的对象。如果我将对象分批发送,每个批次包含10个对象,那么该服务的速度会更快。我的当前架构如下:生产者逐个广播对象,一堆消费者从队列中拉取它们(一个接一个)并将其发送到 Service。这显然是不够优化的。 我不想修改生产者代码,因为它可以...

9得票1回答
Pika中实现了TTL吗?

我希望我的队列能在一定时间内丢弃未处理的消息。 在消费者端,我已经通过记录发布时间来实现这一点。但是,在没有任何订阅者的情况下,最好让队列简单地丢弃陈旧的消息。 我能否在Pika中设置消息的过期时间(TTL)?RabbitMQ文档中提到了它,但我在Pika文档中没有看到TTL的引用。

9得票2回答
如何确保消息传递成功?

如何确保使用Pika传递的消息成功送达?默认情况下,如果消息未能成功送达,它不会提供任何错误信息。 在这个例子中,当连接出现问题时,可能会发送多条消息,在pika确认连接已断开之前。 import pika connection = pika.BlockingConnection(pik...

9得票1回答
在pika Python中设置'x-message-ttl'

我希望使用pika将Rabbitmq队列的TTL设置为1秒。 我尝试了以下代码。 import ctypes int32=ctypes.c_int connection = pika.BlockingConnection(pika.ConnectionParameters( h...

14得票1回答
阻止jupyter笔记本单元格执行,直到收到特定消息

我正在尝试为Python实现异步、分布式计算引擎,该引擎与Jupyter Notebook兼容。该系统应该基于“推送通知”方法,这使得用户几乎不可能等待特定的计算结果(即阻塞给定笔记本单元格的执行,直到收到带有期望结果的消息)。确切地说,我正试图: 将新任务添加到Jupyter Noteb...

8得票1回答
如何使用pika连接到RabbitMQ集群的Python客户端?

我有一个使用Pika包(0.9.13)的Python客户端,从RabbitMQ集群中的一个节点检索数据。该集群由两个位于不同主机(url_1和url_2)上的节点组成。如何使我的Python客户端订阅这两个节点? 以下是我的代码主要结构: import pika credentials =...

8得票1回答
皮卡连接在三个心跳后关闭。

我正在编写一个脚本,它可以接收HTTP请求(使用Tornado),解析它们,并使用pika将它们发送到RabbitMQ代理。代码如下: def main(): conn_params = pika.ConnectionParameters( host=BROKER_N...

7得票3回答
如何使用pika和RabbitMQ禁用心跳信号。

我正在使用 RabbitMQ 将一些任务从我的 Rabbit 服务器传输到相应的消费者。我注意到当我运行一些比较长的测试(超过20分钟)时,我的消费者会在完成任务后失去与生产者的联系。在我的 Rabbit 日志中,我看到了以下错误信息: closing AMQP connection &lt...