ram*_*sus 5 django celery django-celery
我需要找到在任何中间子任务引发异常后如何继续使用immutable = True子任务执行链的方式。
我已经阅读了该主题和此问题的评论。现在,这些错误已修复,但是我需要实现相反的行为。我不需要停止执行链条。可能还有另一种方式可以以任何顺序依次执行独立任务列表而不在它们之间发送结果吗?而且我需要异步执行它们,因为在这种情况下,django-celery将存储有关每个任务的统计信息。
一种解决方案是使用以下方法覆盖所有子任务的主体:
try:
...
except Exception, e:
logger.error('Exception raised: %s' % e)
raise e
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下,所有子任务都将以SUCCESS状态执行,并且在django-celery管理界面中对异常的回溯将毫无用处。
小智 0
Perharps 使用 Chord 和CELERY_CHORD_PROPAGATES
因此,当 Chord 的子部分失败时,您可以管理异常并用它执行您想要的操作(记录某些内容、重新排队任务以更改执行等)。
由于你已经有了一条链,Chord 只会是其中的一部分,你需要知道任务的状态。
| 归档时间: |
|
| 查看次数: |
1495 次 |
| 最近记录: |