如何解决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

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

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

所属团队号:
相关资源
基于火山引擎 EMR 构建企业级数据湖仓
火山引擎 EMR 是一款云原生开源大数据平台,提供主流的开源大数据引擎,加持了字节跳动内部的优化、海量数据处理的最佳实践。本次演讲将为大家介绍火山引擎 EMR 的架构及核心特性,如何基于开源架构构建企业级数据湖仓,同时向大家介绍火山 EMR 产品的未来规划。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论