插件:【workbunny】RabbitMQ客户端
压测发布消息,发布到2048个的时候就报错了
for ($i = 1; $i <= 5000; $i++) {
sync_publish(TestBuilder::instance(), $i);
}
[2024-06-23 19:11:22] default.ERROR: 1719141082.4885 ["2046"] []
[2024-06-23 19:11:22] default.ERROR: 1719141082.489 ["2047"] []
[2024-06-23 19:11:22] default.ERROR: 127.0.0.1 POST 127.0.0.1:50000/api/mqtt/test
Error: Call to a member function publish() on int in E:\test\admin\vendor\workbunny\webman-rabbitmq\src\Connection.php:241
Stack trace:
#0 E:\test\admin\vendor\workbunny\webman-rabbitmq\src\helpers.php(33): Workbunny\WebmanRabbitMQ\Connection->syncPublish(Object(Workbunny\WebmanRabbitMQ\BuilderConfig), false)
windows10
PHP8.1.17
webman-framework1.5.16
workbunny/webman-rabbitmq2.1.3
使用sync_publish同步发布,该问题在linux环境下也同样会出现
使用async_publish异步发布,又会出现新的报错,win10和linux环境都一样会出现
rabbitmq有通道上限,在被占满后,则会出现该错误;酌情调整你的通道上限值
麻烦问下这个通道上限是在哪里调整呀
rabbitmq server的配置中
请问,解决了吗?遇到了同样的问题
配置rabbitmq server的队列通道上限,根据所需进行配置
channel满了后还是不行,sync_publish就报异常
handler中如何关闭channel @chaz6chez
酌情配置rabbitmq server的channel上限,并重新连接client,才会生效;
channel对象调用close即可关闭
开启连接复用+调整channel上限可以有效降该问题出现