尝试以下操作
debug=>false
error_reporting=>1024
这个是webman的错误打印配置
trigger_error("超时重试2",E_USER_NOTICE)
还是会打印错误堆栈
找寻源码 webman/queue
是对 workerman/redis-queue
的优雅封装,搞不定
因为我已经选择主动抛出异常重试,堆栈信息是否保存到redis起码可选的吧~ redis - fail表体积爆炸
vendor/workerman/redis-queue/src/Client.php pull
200行队列回流机制 就是 接收
Exception
和Error
的错误,增加一个配置项根据 是否存储堆栈 $package['error']即可修复$callback = $this->_subscribeQueues[$redis_key]; try { \call_user_func($callback, $package['data']); } catch (\Exception $e) { if (++$package['attempts'] > $this->_options['max_attempts']) { $package['error'] = (string) $e; $this->fail($package); } else { $this->retry($package); } echo $e; } catch (\Error $e) { if (++$package['attempts'] > $this->_options['max_attempts']) { $package['error'] = (string) $e; $this->fail($package); } else { $this->retry($package); } echo $e; }
主基础插件已提交修复 等待合并
我在已提交 pull request 如果官方合并,主动抛出异常 不会帮报错保存到
redis fail
开启打印错误堆栈到redis
composer require workerman/redis-queue ^1.2.0 webman/redis-queue ^1.3.1
升级下,现在不记录异常调用栈到redis了,记到rutime/log日志文件里了
+1
666