不可用的类型' dict'在芹菜

时间:2014-06-16 05:30:41

标签: python celery

我刚写了一个简单的芹菜代码,只需添加两个数字并使用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

提前致谢

2 个答案:

答案 0 :(得分:0)

您应该按照以下方式调用您的函数:

function.apply_async(
args = [param1, param2, ...],
kwargs = {k : v}, ...})

使用添加功能,语句将为:

add.apply_async(args = [3,4])

您可以查看文档http://celery.readthedocs.org/en/latest/reference/celery.app.task.html#celery.app.task.Task.apply_async

答案 1 :(得分:0)

使用celery multi start命令将celery作为守护进程运行时,我遇到了同样的错误。奇怪的是,将我的一个队列的名称从q3改为q4似乎是修正它的原因。