想问下这样设置一定请求会重启当前进程的话。重启当前进程之前发送的数据会失败吗?

$worker->onMessage = function($connection, $data) {
$connection->send($ret);
    static $request_count;
    // 业务处理略
    if(++$request_count > 10000) {
        // 请求数达到10000后退出当前进程,主进程会自动重启一个新的进程
        Worker::stopAll();
    }
};
 
我想知道这样处理的话send出去的数据能发送成功吗?当处理到一定请求之后重启当前进程的话。
已邀请:

walkor

赞同来自: codeninjia

正常情况下都会发送成功,极端情况可能不成功,比如发送了超大的数据,数据积压在workerman的数据缓冲区的情况。
 
如果是短连接业务,最好是有个判断 count($worker->connections) == 0 的时候执行重启。

要回复问题请先登录注册