芹菜挂在 ready()



几乎是这个SO问题的精确副本,但答案对我没有帮助。我已经安装了Erlang,Celery和RabbitMQ,并设置了Celery使用AMQP作为后端和代理。我完全遵循了快速入门示例(创建一个将两个数字相加的任务(,但是当我发出result.ready()命令时,Celery 进程只是挂起。

  • 这不是身份验证问题(四重检查和测试无效登录(
  • 根据之前的SO问题,这不是磁盘空间不足错误(>800mb免费(
  • 工作线程已启动并正在运行("使用者:准备接受任务!
  • MQ 已启动并正在运行("代理正在运行"(
  • 我可以看到 Celery 连接到 RabbitMQ("接受 AMQP 连接 (ip -> ip("(
  • 我认为这是我的 Python 脚本没有正确连接到 Celery 工作进程的问题。可能是因为我试图在树莓派上运行它吗?操作系统的可用内存非常低。

我在这里扯头发。欢迎任何帮助!

经过大量的试验和错误,我发现将以下内容添加到我的celeryconfig.py中会导致调用ready()返回True。也许不是一个理想的解决方案,但至少是一个可以让进程解开卡住并返回适当值的解决方案。

CELERY_ALWAYS_EAGER = True

在实施此解决方法之前(在我看来,这不是真正的解决方案(,您可能应该阅读文档以确保您了解其作用;

。任务将在本地执行,而不是发送到队列。

这否定了当初使用芹菜的原因,所以最后我放弃了,用了Redis代替AMQP。就像一个魅力。

相关内容

  • 没有找到相关文章