芹菜中有错误队列

Vig*_*esh 5 python reliability celery

如果任务执行失败,芹菜有什么方法可以自动将其放入另一个队列中。

例如,如果任务在队列中运行x,则在出现异常时将其排入另一个名为的队列error_x

编辑:

目前我正在使用celery==3.0.13django 1.4、Rabbitmq 作为代理。

有时任务会失败。芹菜有没有办法将消息添加到错误队列并稍后处理。

芹菜任务失败时的问题是我无权访问消息队列名称。所以我不能使用self.retry重试将其放入不同的错误队列。

can*_*eel 0

我遇到了类似的问题,我解决的方法可能不是最有效的,但我的解决方案如下:

我创建了一个 django 模型来保留所有 celery 任务 ID,并且能够检查任务状态。

然后我创建了另一个在无限循环中运行的芹菜任务,并检查所有“正在运行”的任务的实际状态,如果状态为“失败”,它就会重新运行它。我实际上并没有更改我重新运行的任务的队列,但我认为您可以实现一些自定义逻辑来决定将您以这种方式重新运行的每个任务放在哪里。