芹菜任务重试(Celery,Django和RabbitMQ)

时间:2011-03-17 07:04:45

标签: rabbitmq celery django-celery

你能告诉我芹菜什么时候你告诉任务要重试吗?它会在同一个工作线程中重试,还是会返回到可能将其发送到其他地方的经纪人?

如果工人或调度员突然停止,重试任务会怎样?如果可以丢失任务,有什么方法可以避免这种情况吗?可以保存数据库中的每个任务,如果一段时间没有收到结果,可以重试它们吗?

或者可能是调度员拥有自己的持久存储?那么如果工作线程崩溃接收任务或执行任务呢?

1 个答案:

答案 0 :(得分:0)

  

你能告诉我发生什么事吗?   在芹菜中你告诉任务重试?   它会在同一个工人中重试吗?   线程或它将返回   经纪人可以将其发送到其他地方吗?

是的,任务返回到具有不同估计执行时间的代理(例如Rabbit MQ)

  

重试任务会发生什么   如果工人或调度员突然停止?   如果可以丢失任务,那就有一些   避免这种做法?可能会保存   数据库中的每个任务并重试它们   如果没有收到某些结果   时间?   或者可能是调度员拥有它自己的   持久存储?那么如果   工作线程崩溃接收任务   或者在执行时?

这里有一个完整的答案Retry Lost or Failed Tasks (Celery, Django and RabbitMQ)