首页 > 解决方案 > Celery 活动任务持久化

问题描述

如果 celery 在执行某个任务时崩溃,重启 celery 后该任务丢失。崩溃时队列中的任务将在 RabbitMQ 中恢复正常。但是我怎样才能使活动任务持久化呢?

标签: celerypersistence

解决方案


Celery 默认配置为task_acks_late=False. [1] 这意味着一旦工作人员从队列中接收到任务,任务就会被确认。而如果任务失败,队列也无从知晓。

设置task_acks_lateTrue,任务将在处理后被确认。当任务失败时,它被重新排队。[2] 但要小心,你的任务必须是幂等的。[3]


推荐阅读