我刚写了一个简单的芹菜代码,只需添加两个数字并使用celery打印它,使用以下代码:
from scheduling.celery import app
*@app.task
def add(x, y):
print("sum is "+str(x+y))*
但问题是当我使用:
调用此函数时*add.apply_async((3, 4))*
出现了引发异常错误,说
> Task
> celerytasktest.simplecelerytask.add[bafe33b6-3329-406a-b5c0-43eee9228273]
> raised unexpected: TypeError("unhashable type: 'dict'",)
我试了两天才发现问题,但失败了。
我使用的是芹菜版3.1.9
提前致谢
答案 0 :(得分:0)
您应该按照以下方式调用您的函数:
function.apply_async(
args = [param1, param2, ...],
kwargs = {k : v}, ...})
使用添加功能,语句将为:
add.apply_async(args = [3,4])
答案 1 :(得分:0)
使用celery multi start命令将celery作为守护进程运行时,我遇到了同样的错误。奇怪的是,将我的一个队列的名称从q3改为q4似乎是修正它的原因。