使用芹菜,我构建了一个和弦:
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()在两个步骤中完成此操作,因为这些和弦已经在任务中构建。
发布于 2016-12-19 16:36:35
chord完成函数还将在其部分/全部组任务已设置的情况下引发TimeoutError异常: ignore_result=True
当完成函数触发时,它找不到已完成的组任务的任何结果,因此它假设由于超时,这些任务已从结果后端清除。
如果不看你的代码,就很难判断是不是这样。无论如何,请确保您不会忽略组任务的结果。
https://stackoverflow.com/questions/31951533
复制相似问题