我如何将论证传递给芹菜任务?

时间:2018-05-09 04:16:33

标签: django celery

这是我的芹菜任务

Button b = form.getToolbar().findCommandComponent(notifCommand);

我称之为

之类的任务

arg1是列表,arg2,3,4是整数

def task_a(arg1, arg2, arg3, arg4)

我收到了一条错误消息

task_a.apply_async(arg1, arg2, arg3, arg4)

我该如何解决问题?

我试图制作一本字典并改变参数位置,它们都失败了......

2 个答案:

答案 0 :(得分:7)

delay将起作用而不是apply_async:请参阅doc here

task_a.delay(*arg,**kwargs)

答案 1 :(得分:2)

要将参数传递给apply_async()的任务,您需要将它们包装在一个列表中,然后将列表作为第一个参数传递,即。 apply_async([arg1, arg2, arg3])。有关详细信息和示例,请参阅documentation

使用delay()作为替代方案。好处是它保留了或多或少的函数参数接口,即不需要将args包装在列表中。