我正尝试使用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。
1条答案
按热度按时间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上的问题。