2010-11-10 106 views
7

出于某种原因,无论何时我在Celery中创建并运行新任务时,返回结果都会出现问题。第一个任务完美返回,但对于所有后续任务,结果始终处于等待状态。我检查了芹菜日志,并得到正确的结果没有错误,但它不能返回它。芹菜不返回结果

如果有帮助,我运行rabbitmq作为我的后端。

+0

什么版本的芹菜?你用什么来存储结果? (CELERY_RESULT_BACKEND) – asksol 2010-11-10 07:32:32

+0

版本2.2和rabbitmq是我的后端。 – veered 2010-11-10 12:58:18

+0

等一下。对不起,这没有任何意义。我没有设置任何数据库,或者更改了任何配置设置。这是否意味着它将默认为AMQP? – veered 2010-11-10 13:20:47

回答

5

事实证明,我只是需要明确指定一个后端。

添加:

CELERY_RESULT_BACKEND = "amqp" 

我的设置文件似乎解决一切。

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",) 

我的壳,其中第一时间内得到成功,第二次的雄。如果我再次调用该方法,它可以工作。这种模式不断重复。

>>> 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