也许我对芹菜有些误解,但我已经坚持了很久了。在
我有一堆简单的子任务,我想在它们完成时迭代它们,而不是等待它们全部完成。我试过了:
def task_generator():
for row in db:
yield mytask.s(row)
from celery.result import ResultSet
r = ResultSet(t.delay() for t in task_generator())
for result in r.iterate():
print result
然而,celery首先运行所有的任务,并且迭代只在所有任务完成之后才开始,尽管ResultSet.iterate
正在读"Iterate over the return values of the tasks as they finish one by one."
那么,我如何在任务结果完成时迭代它们呢?在
我已经实现了这一点,并在过去使用过。我认为
.iterate()
是不推荐使用的,所以我自己正在研究一个新的解决方案。在相关问题 更多 >
编程相关推荐