此示例存在于芹菜文档中。
>>> new_user_workflow = (create_user.s() | group(
... import_contacts.s(),
... send_welcome_email.s()))
... new_user_workflow.delay(username='artv',
... first='Art',
... last='Vandelay',
... email='art@vandelay.com')
正如您所看到的,create_user子任务中隐式提供了kwargs。虽然我假设返回的用户对象提供了导入和发送所需的值,但在我的生命中,我无法弄清楚create_user如何在此示例中访问kwargs。当我使用create_user任务模拟它时,它总是获得0个参数,我认为这是因为没有传递给.s()的参数。有谁知道如何在create_user中访问kwargs?
这是我的测试代码:
@app.task()
def create_user(*args, **kwargs):
print args
print kwargs
return "foo"
@app.task()
def something_else(*args, **kwargs):
print args
print kwargs
test = chain(create_user.s(), something_else.s())
test.delay(username="test", password="testp")
结果:
()
{}
('foo',)
{}
感谢。
编辑:添加测试代码