celery 文档告诉我,如果多个任务链接在一起,第一个任务的结果将是下一个任务的第一个参数。我的问题是,当我有一个返回多个结果的任务时,我无法让它工作。
例子:
@task()
def get_comments(url):
#get the comments and the submission and return them as 2 objects
return comments, submission
@task
def render_template(threadComments, submission):
#render the objects into a html file
#does not return anything
现在,如果我在 (get_comments(url) | render_template()).apply_asnc() 之类的链中调用它们,python 将抛出一个TypeError: render_template() takes exactly 2 arguments (0 given)
.
我可以看到结果没有展开并应用于参数。如果我只调用 get_comments,我可以这样做:
result = get_comments(url)
arg1, arg2 = result
并得到两个结果。