为什么芹菜不向RabbitMQ发送任务?

Vas*_*eev 1 python django rabbitmq celery

我正在使用带有Django和RabbitMQ的Celery.当我做

task.delay()
Run Code Online (Sandbox Code Playgroud)

我得到了一个AsyncResult,但是当我检查时,任务永远不会到达芹菜工人

rabbitmqctl list_queues
Run Code Online (Sandbox Code Playgroud)

我看到我的队列有0条消息.当我删除队列并再次执行"task.delay()"时,会重新创建队列,但它仍然是空的.

Vas*_*eev 6

昨天花了太多时间解决这个问题.

原来问题是磁盘空间:默认情况下,当可用磁盘空间低于1GB时,RabbitMQ开始静默地丢弃消息.

事实上,您可以在RabbitMQ启动日志中看到有关它的消息,但如果它运行了一段时间,您可能无法找到它.

要解决此问题,您只需清除足够的磁盘空间或修改disk_free_limit RabbitMQ设置即可.