我有一个主服务器和6个工作服务器(每个服务器上都运行着几个工作服务器)。在经过几个月的完美执行之后,即使没有代码更改,所有任务突然停止执行。现在,即使在重新启动所有涉及的服务器,重新启动RabbitMQ,重新启动工作程序等之后,服务器似乎也无法彼此找到,因此无法完成任何任务。
当我运行celery -A proj inspect active
时,响应为Error: No nodes replied within time constraint.
,我也可以使用Flower连接到代理,但是它没有列出任何工人,即使这些工人正在运行并指向同一个经纪人。在负责添加任务的主服务器上,我的应用程序现在似乎无限期地挂在apply_async
上。
在我的应用程序中,将代理设置为pyamqp,将后端设置为rpc:
Celery('proj', broker='pyamqp://[master server's IP]', backend='rpc://[master server's IP]')
我觉得我缺少了一些非常简单的东西,但是我不知道它是什么。
答案 0 :(得分:0)
导航到/var/log/rabbitmq/rabbit@[server-name].log
并回滚到问题首次发生的时间,这使我收到此消息Disk free space limit now exceeded. Free bytes:999378944 Limit:1000000000
。
结果证明,硬盘驱动器已装满,看来这给RabbitMQ和Celery造成了种种麻烦。释放空间完全解决了所有问题。