【问题标题】:Celery stops processing芹菜停止处理
【发布时间】:2025-11-28 01:35:01
【问题描述】:

在 rabbitmq 中大约有 90 万条消息后,celery 工作人员停止了处理任务。在杀死芹菜并再次运行它时,处理恢复。兔子永远不会失去记忆。任何日志或状态都没有可疑之处,除了:

** 警告 ** Mnesia 过载:{dump_log,write_threshold}

来自/var/log/rabbitmq/rabbit.log。之前出现过类似的症状,大约有 160 万条消息排队。

更多信息:

  • Celery 并发:4
  • 已安装内存:4GB
  • 交换空间 8GB
  • disk_free_limit(兔子):8GB
  • vm_memory_high_watermark: 2
  • vm_memory_high_watermark_paging_ratio: 0.75

如何诊断工人停工的实际原因以及如何防止其再次发生。

谢谢。

【问题讨论】:

    标签: rabbitmq celery


    【解决方案1】:

    可能提交/使用队列中的消息太快了?

    如果您不需要消息是持久的并且可以只将它们存储在内存中,它将显着提高 RabbitMQ 的性能。

    http://docs.celeryproject.org/en/latest/userguide/optimizing.html#using-transient-queues

    【讨论】:

    • 问题不是关于提高性能,而是关于工人“卡住”并且根本不处理任何消息。