3

背景:最近对 RabbitMQ 3.8.x 的更改创建了30 分钟的交付确认超时。根据文档,这可以通过设置 consumer_timeout 值在 rabbitmq.conf 文件中覆盖。

我的问题:我正在使用 pika 客户端库,需要 30 多分钟来处理我的工作队列中的每条消息。我正在通过 AWS Amazon-MQ 使用托管 RabbitMQ 集群,直到几天前才出现问题,但现在PRECONDITION_FAILED - delivery acknowledgment on channel 1 timed out. Timeout value used: 1800000 ms在我的日志中收到消息。我的集群是为自动次要版本更新而设置的,所以这是我对这些更改如何发生的假设。

我知道托管服务的目的是向用户隐藏所有这些设置细节,但当然,现在我需要更改其中一个。我发现我可以通过 rabbitmqadmin CLI 与远程集群进行通信以执行列出队列之类的任务,但我仍在寻找一种远程编辑底层配置文件的方法。我的集群的唯一信息是主机(形式为b-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.mq.us-east-1.amazonaws.com)、用户名和密码。有谁知道这是否可能?我是各种 CLI 工具(例如 rabbitmqctl 和 rabbitmq-diagnostics)的新手,因此我们将不胜感激。

有没有办法通过库或类似的解决方法为 pika 用户设置 consumer_timeout 值?我希望 Channel.basic_consume() 函数可能有一个参数,但我也明白这可能是一个集群设置,而不是可以通过消费者设置的东西。

第一次在这里提问,所以我非常感谢任何关于我是否提供了足够信息的帮助和反馈。

4

0 回答 0