好吧,我已经翻遍了所有 SO 帖子、Celery 文档等……但我就是想不通。无论我尝试什么或如何尝试从 Django 应用程序调用任务,Celery 都在抱怨我没有提供所需的参数。
“类型错误:add() 缺少 2 个必需的位置参数:'x' 和 'y'”。
我正在从他们的文档中遵循一个非常简单的示例……仅使用延迟,例如:
add.delay(1, 2)
Run Code Online (Sandbox Code Playgroud)
仍然是同样的错误。我也尝试过add.delay(x=1, y=2),celery.send_task("add", [1, 2])以及各种各样的其他方式,我见过在各种帖子中调用的任务,但都没有工作。
方法非常简单:
@shared_task
def add(x, y):
return x + y
Run Code Online (Sandbox Code Playgroud)
我也试过它的名字,例如:
@task(name="my_add")
def add(x, y):
return x + y
Run Code Online (Sandbox Code Playgroud)
结果一样。我还能缺少什么?