workbunny / webman-rabbitmq

🚀🐇 A PHP implementation of RabbitMQ Client for webman plugin.
https://www.workerman.net/plugin/67
MIT License
23 stars 4 forks source link

【workbunny/webman-rabbitmq】消费者超时导致重复消费 #11

Closed Caesar-Tang-X closed 7 months ago

Caesar-Tang-X commented 1 year ago

问题描述

首先感谢 workbunny 提供这么一款很好用的插件。使用【workbunny】RabbitMQ客户端,插件地址:https://www.workerman.net/plugin/67, 在消费者中如果有阻塞并超过一定时间,就会导致重复消费。

框架及插件版本

"workerman/webman-framework": "^1.5.0" "workbunny/webman-rabbitmq": "^1.0"

复现代码

生产者:IndexController.php

image

workbunny rabbitmq配置:app.php image

消费者:TestBuilder.php image

关键日志打印

image

关键日志说明

通过日志可以看到,在出现错误前,是有消息消费成功并返回了 ACK。在出现错误后,相关进程重启,导致消息开始重新消费,以前返回的 ACK 似乎无效?RabbitMQ的控制台,始终显示有对应数量的信息处于 Unacked 状态。

image