错误信息 Bunny\Exception\ClientException: Could not write data to socket. 如果在队列里面接收消息之后 接着业务处理 就会有这种情况出现(不是必现)
如果把业务处理代码注释掉 就不会出现这种情况
请检查业务是否阻塞时长过长导致心跳发送失败从而连接被server踢掉,或者业务内有主动断开客户端连接的逻辑。
应该是处理业务时间过长
php是单线程的,心跳和消费都在一个线程上执行,当消费阻塞超过了心跳间隔就会导致心跳无法正常触发,这时候可以尝试对当前队列修改调整心跳间隔,或者配置队列服务心跳相关的配置,最好是对业务部分进行一些处理,将一些过于耗时的地方进行优化
2.0版本现在要做的就是尝试处理这个问题,这段时间比较忙,一直都还没有什么进度
辛苦了 大佬
之前因为工作原因更多的使用的是rabbitmq,现在也因为工作原因,更多的使用redis-stream;有机会你也可以尝试一下https://www.workerman.net/plugin/69这个插件
如果使用rabbitmq的话,除了heartbeat需要进行调整外,timeout也需要调整,具体的可以参看rabbitmq文档中对这两个参数的解释
请检查业务是否阻塞时长过长导致心跳发送失败从而连接被server踢掉,或者业务内有主动断开客户端连接的逻辑。
应该是处理业务时间过长
php是单线程的,心跳和消费都在一个线程上执行,当消费阻塞超过了心跳间隔就会导致心跳无法正常触发,这时候可以尝试对当前队列修改调整心跳间隔,或者配置队列服务心跳相关的配置,最好是对业务部分进行一些处理,将一些过于耗时的地方进行优化
2.0版本现在要做的就是尝试处理这个问题,这段时间比较忙,一直都还没有什么进度
辛苦了 大佬
之前因为工作原因更多的使用的是rabbitmq,现在也因为工作原因,更多的使用redis-stream;有机会你也可以尝试一下https://www.workerman.net/plugin/69这个插件
如果使用rabbitmq的话,除了heartbeat需要进行调整外,timeout也需要调整,具体的可以参看rabbitmq文档中对这两个参数的解释