芹菜活动任务持久化
Celery active tasks persistence
如果celery在执行某个任务时崩溃了,重启celery后这个任务就会丢失。崩溃时队列中的任务将在 RabbitMQ 中恢复正常。但是我怎样才能使活动任务持久化呢?
Celery 默认配置 task_acks_late=False
。 [1] 这意味着一旦工作人员从队列中接收到任务,任务就会被确认。如果任务失败,队列无法知道。
将 task_acks_late
设置为 True
,任务将在 处理完成后被确认。当任务失败时,它会重新排队。 [2] 但请注意,您的任务必须是幂等的。 [3]
如果celery在执行某个任务时崩溃了,重启celery后这个任务就会丢失。崩溃时队列中的任务将在 RabbitMQ 中恢复正常。但是我怎样才能使活动任务持久化呢?
Celery 默认配置 task_acks_late=False
。 [1] 这意味着一旦工作人员从队列中接收到任务,任务就会被确认。如果任务失败,队列无法知道。
将 task_acks_late
设置为 True
,任务将在 处理完成后被确认。当任务失败时,它会重新排队。 [2] 但请注意,您的任务必须是幂等的。 [3]