celery停在mingle: 搜索邻居,无法进入就绪状态

9 投票
4 回答
8130 浏览
提问于 2025-04-18 16:23

我之前在我的项目中用10个线程运行了celery,效果很好。

现在,当我使用这个命令:

celery -A tasks worker --loglevel=info --concurrency 10

celery卡在了:

[2014-08-07 12:55:21,013: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2014-08-07 12:55:21,025: INFO/MainProcess] mingle: searching for neighbors

之前在这个时候它会显示准备就绪的状态。

而当我尝试用ctrl+c来结束它时,它并没有关闭。

[2014-08-07 12:55:21,013: INFO/MainProcess] Connected to     amqp://guest:**@127.0.0.1:5672//
[2014-08-07 12:55:21,025: INFO/MainProcess] mingle: searching for neighbors
^C
worker: Hitting Ctrl+C again will terminate all running tasks!

worker: Warm shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)

我甚至尝试给工作线程分配任务,但也没有效果。

我想让celery保持在准备就绪的状态,有人能帮忙吗?

另外,我需要一个正确的方法来结束celery进程,包括任务、队列和工作线程。谢谢。

4 个回答

0

如果你使用的是数据库作为后端,给celery加上以下选项应该能解决问题:--without-gossip --without-mingle

可以查看GitHub上的相关问题

1

这个问题是因为RabbitMQ消息中间件崩溃了,重启它就解决了。

1

如果你想了解更多,RabbitMQ在单独运行时需要1GB的磁盘空间。如果你在运行一个RabbitMQ集群,那么集群中的所有节点都需要有1GB的可用磁盘空间。

6

检查一下你的磁盘剩余空间。默认情况下,RabbitMQ需要1GB的空闲空间。

撰写回答