和弦超声

时间:2015-08-11 20:40:18

标签: python django celery chord

使用芹菜,我构造了一个和弦:

from celery import chord
chord(task1, chord(task2, task3))

然而,它经常会引发暂停:

Chord '0f3dd024-8fe3-4b1b-ab9b-6081569c9738' raised:  
"TimeoutError('Operation timed out (3.0)',)"  
    Traceback (most recent call last):  
    File "python2.7/site-packages/celery/backends/base.py", line 568, in on_chord_part_return   
    StopIteration  
    culprit = next(deps._failed_join_report())

是否有人修改超时设置以允许这种芹菜设计?

请注意,每个任务中都有子任务,因此在开始下一个任务之前,链似乎没有确保所有子任务都已完成。

另一个限制是我无法通过两个步骤调用get()来执行此操作,因为这些和弦已在任务中构建。

1 个答案:

答案 0 :(得分:0)

如果部分/全部组任务已设置,和弦完成功能也会引发TimeoutError异常:ignore_result = True

当完成功能触发时,它无法找到已完成的组任务的任何结果,因此它假定它们已因超时而从结果后端中清除。

如果是这种情况,如果没有看到您的代码,很难说清楚。 无论如何,请确保您不要忽略小组任务的结果。