workman 进程重启后的问题

yepo
$worker->onMessage = function ($connection, $request){
    //设置单进程请求量达到额定时重启,防止代码写得不好产生OOM
    static $maxRequest;
    if(++$maxRequest>5000){
        Worker::stopAll();
    }
};

// 启用swoole的事件驱动
Worker::$eventLoopClass = 'Workerman\Events\Swoole';

Worker::runAll();

参照手册 https://www.kancloud.cn/walkor/workerman/806687
给进程处理一定请求后重启当前进程,以上代码,进程重启后,无法再接收请求。

原因查出来了,因为启用swoole的事件驱动造成的,只要不启用就正常。

请问这是为什么,有解决办法吗

2313 1 0
1个回答

walkor

swoole环境下调用exit进程无法正常退出导致的,workerman更新到4.0.7或者更高版本试下。

年代过于久远,无法发表回答
🔝