【workbunny】RabbitMQ客户端 报错

LokiLiu

问题描述

插件:【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)

操作系统及workerman/webman等框架组件具体版本

windows10
PHP8.1.17
webman-framework1.5.16
workbunny/webman-rabbitmq2.1.3

576 3 0
3个回答

LokiLiu

使用sync_publish同步发布,该问题在linux环境下也同样会出现

  • 暂无评论
LokiLiu

使用async_publish异步发布,又会出现新的报错,win10和linux环境都一样会出现
截图
截图

  • chaz6chez 2024-06-27

    rabbitmq有通道上限,在被占满后,则会出现该错误;酌情调整你的通道上限值

  • LokiLiu 2024-06-27

    麻烦问下这个通道上限是在哪里调整呀

  • chaz6chez 2024-06-28

    rabbitmq server的配置中

windss

请问,解决了吗?遇到了同样的问题

  • chaz6chez 2024-07-29

    配置rabbitmq server的队列通道上限,根据所需进行配置

  • windss 2024-07-29

    channel满了后还是不行,sync_publish就报异常

  • windss 2024-07-29

    handler中如何关闭channel @chaz6chez

  • chaz6chez 2024-07-29

    酌情配置rabbitmq server的channel上限,并重新连接client,才会生效;
    channel对象调用close即可关闭

  • chaz6chez 2024-07-29

    开启连接复用+调整channel上限可以有效降该问题出现

×
🔝