Supervisor显示Consumer不停重启,RabbitMQ ready数量不降,日志每次都是同一个entity ID。只增加autorestart会把错误刷得更快。先确认消息是临时失败还是永远无法处理的毒消息。
常见毒消息:旧版本序列化结构、引用已删除实体、必填字段缺失、代码升级后topic schema不兼容。记录message ID或业务幂等键,避免把完整payload里的客户信息打进日志。
bin/magento queue:consumers:start <consumer> --max-messages=10 -vvv # RabbitMQ管理页查看redelivered标记和unacked变化
重试要有上限
网络超时可以指数退避重试;数据验证失败通常重试也不会好,应进入死信队列或失败表,告警后人工修复。处理器在确认业务成功后才ack,同时必须幂等,避免崩溃前已写数据库、重投后再写一遍。
清理那一条消息前先导出必要的错误上下文和业务ID,并确认队列顺序要求。修复消费者后回放隔离消息,成功才重新开放大批量消费。

