我正在使用带有Django和RabbitMQ的Celery。当我做的时候
task.delay()
我得到了一个AsyncResult,但是当我检查
时,这个任务永远不会到达芹菜工人rabbitmqctl list_queues
我看到我的队列有0条消息。当我删除队列并再次执行“task.delay()”时,会重新创建队列,但它仍然是空的。
答案 0 :(得分:6)
昨天花了太多时间来解决这个问题。
原来问题是磁盘空间:默认情况下,当可用磁盘空间低于1GB时,RabbitMQ开始静默地丢弃消息。
事实上,您可以在RabbitMQ启动日志中看到有关它的消息,但如果它运行了一段时间,您可能无法找到它。
要解决此问题,您只需清除足够的磁盘空间或修改disk_free_limit RabbitMQ setting。