easy-swoole / easyswoole

swoole,easyswoole,swoole framework
https://www.easyswoole.com/
Apache License 2.0
4.73k stars 512 forks source link

controller pool empty #573

Closed feilisu closed 1 year ago

feilisu commented 1 year ago

[2023-04-11 12:23:05][][error]:[array ( 'handle' => 'ThrowableHandler::exceptionHandle', 'code' => 0, 'message' => 'controller pool empty for App\Controller\Logistics\Job\Logistics', 'file' => '/data/code/vendor/easyswoole/http/src/Dispatcher.php', 'line' => 241, 'trace' => '#0 /data/code/vendor/easyswoole/http/src/Dispatcher.php(183): EasySwoole\Http\Dispatcher->controllerExecutor()

1 /data/code/vendor/easyswoole/easyswoole/src/Core.php(265): EasySwoole\Http\Dispatcher->dispatch()

2 {main}',

)]

我不太确定这个是什么场景造成的,希望帮忙排查一下。

我猜测是超过了最大创建次数$maxPoolNum,而已创建的都回收失败,但是不确定为什么回收失败

XueSiLf commented 1 year ago

出现这个异常的原因是你的App\Controller\Logistics\Job\Logistics类不属于控制器类,而你把他当控制器类使用了,你需要继承控制器基类 EasySwoole\Http\AbstractInterface\Controller

feilisu commented 1 year ago

谢谢,现在问题已经解决,但是不是你描述的这个原因导致的,修复了某个场景中协程管道数据长时间未被pop的问题,对应这个问题再也没有出现了。