几乎是this SO question的完全重复,但答案对我没有帮助。我已经安装了Erlang,Celery和RabbitMQ并设置了Celery以使用AMQP作为后端和代理。我完全按照quickstart example(创建一个将两个数字加在一起的任务),但是当我发出result.ready()
命令时,Celery进程就会挂起。
我的头发在这里撕裂了。欢迎任何帮助!
答案 0 :(得分:1)
经过大量的反复试验后,我发现在我的celeryconfig.py
中添加以下内容会导致ready()
回复True
。也许不是一个理想的解决方案,但至少有一个解决方案可以解决问题并返回正确的值。
CELERY_ALWAYS_EAGER = True
在实施此解决方法之前(在我看来,这不是一个真正的解决方案)你应该阅读docs以确保你明白它的作用;
...任务将在本地执行,而不是发送到队列。
哪种方式否定了首先使用Celery的原因,所以最后我放弃并使用Redis而不是AMQP。奇迹般有效。