出于某种原因,每当我在Celery中创建并运行一个新任务时,返回结果都会出现问题。第一个任务完美返回,但对于所有后续任务,结果始终处于未决状态。我检查了Celery日志,它得到了正确的结果,没有错误,但它无法返回。
如果有帮助,我正在运行rabbitmq作为我的后端。
答案 0 :(得分:5)
事实证明我只需要明确指定一个后端。
添加:
CELERY_RESULT_BACKEND = "amqp"
到我的设置文件似乎解决了所有问题。
答案 1 :(得分:1)
即使我添加'amqp'后端,我也遇到了同样的问题。
这是我的芹菜配置文件:
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
CELERY_RESULT_BACKEND = "amqp"
CELERY_AMQP_TASK_RESULT_EXPIRES = 18000 # 5 hours.
CELERY_IMPORTS = ("test", )
我的shell第一次获得成功,第二次被挂起。一段时间后,如果我再次调用该方法,它可以工作。这种模式不断重复。
>>> r = test.add.delay(4, 4)
>>> r.get()
8
>>> r = test.add.delay(4, 4)
>>> r.get()
^C <---------- it was hung here forever, I had to press ^C
>>> r = test.add.delay(4, 4)
>>> r.get()
8