如何解决Celery实例异常退出的问题

前言

celery是一个分布式的任务调度模块,我们可以将一些耗时的操作提交给 Celery 去异步执行,同时还可以实现类似 crontab 定时任务功能。在本例中,客户使用的是 RabbitMQ 来作为消息中间件

问题描述

客户的消费者实例在执行任务过程中会异常退出,具体报错如下:

[2022-0308 11:03:38.403 ERROR/MainPorocess] unrecoverable error:Precondition Failed(406,'PRECONDITION_FAILED - delivery acknowledgement on channel 1 timed out. Timeout value used: 1800000 ms. This Timeout value can be configured, see consumers doc giude to learn more',(0,0),'')
问题分析

消息者实例运行时间超过 1800000 ms 没有返回 ACK 给 RabbitMQ,导致 RabbitMQ 将程序关闭。

解决方案

The timeout value is configurable in [rabbitmq.conf] (in milliseconds):

# one hour in milliseconds
consumer_timeout = 3600000
参考文档

[1] https://www.rabbitmq.com/consumers.html

如果您有其他问题,欢迎您联系火山引擎技术支持服务

136
0
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论