【发布时间】:2018-10-14 00:29:10
【问题描述】:
序列链(group(tasks), final_sum.s()) 没有为第二个任务提供参数 即使其他一切都成功了,外链中的 final_sum.s() 也不会被执行。
def function_task():
tasks1 = []
for i in xrange(10, 13):
tasks.append(add.s(i))
the_big_task1 = chain(get_one.s(), group(tasks1), sum_fun.s())
tasks2 = []
for i in xrange(20, 23):
tasks2.append(add.s(i))
the_big_task2 = chain(get_one.s(), group(tasks2), sum_fun.s())
chain(group([the_big_task1, the_big_task2]), final_sum.s())()
@celery_app.task(name='tasks.get_one')
def get_one():
return 1
@celery_app.task(name='tasks.add')
def add(x, y):
return x + y
@celery_app.task(name='tasks.sum_fun')
def sum_fun(a_list):
return sum(a_list)
@celery_app.task(name='tasks.final_sum')
def final_sum(header_results):
# do something
我们遇到的问题是最终任务永远不会被调用。 我们也试过用和弦包起来,也不管用。
Python 版本 - 2.7 芹菜版 - 3.1.25
【问题讨论】:
标签: celery celery-task