rabbitmq 在docker中,consumer_timeout不起作用

t5fffqht  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(513)

我正尝试使用celery执行一个较长的任务,因此为了进行测试,我让一个示例任务休眠5分钟,并使用包含consumer_timeout = 10000的单行设置rabbitmq.conf文件,期望任务在10秒后失败并出现前提条件错误(或者按照X1E0F1X至少在60秒之后),但它从来没有这样做过。任务在5分钟后完成。我可以看到rabbitmq.conf文件显示在日志顶部(我认为这意味着它成功加载了文件??)

main_rabbitmq         |   Config file(s): /etc/rabbitmq/rabbitmq.conf
main_rabbitmq         |                   /etc/rabbitmq/conf.d/10-default-guest-user.conf

我的Dockerfile:

FROM rabbitmq:3.9.13-management

# Define environment variables.

ENV RABBITMQ_USER user
ENV RABBITMQ_PASSWORD password
ENV RABBITMQ_PID_FILE /var/lib/rabbitmq/mnesia/rabbitmq

COPY ./myrabbit.conf /etc/rabbitmq/rabbitmq.conf

ADD init.sh /init.sh
RUN chmod +x /init.sh

# Define default command

CMD ["/init.sh"]

init.sh文件类似于this

mxg2im7a

mxg2im7a1#

请查看此存储库,您可以使用此存储库来查看发生的使用者超时:
https://github.com/lukebakken/stackoverflow-72318314-1466825
请注意,我对您的自定义入口点脚本做了一些改进。
我确实看到consumer_timeout设置被正确应用了。然而,还有另一个设置起作用,channel_tick_timeout是在一个通道上发生周期性操作的间隔(比如检查过时的消费者)。默认情况下,它被设置为60秒。
https://stackoverflow.com/a/70958499/1466825
在不知道你是如何使用celery 的情况下,我不能说为什么你没有看到同样的超时。

**注意:**RabbitMQ团队监控rabbitmq-users邮件列表,仅在某些时候回答StackOverflow上的问题。

相关问题