http server 被kill后, 如何安全等待事件执行完成.

Swoole\Http\Server 服务被 kill 后, 如何安全等待事件执行完成.

$http = new Swoole\Http\Server("0.0.0.0", 9501);
$http->set(['daemonize' => false]);
$http->on('start', function () {
    l('server pid: ' . getmypid());
    file_put_contents('tmp.pid', getmypid());
    swoole_set_process_name('swoole_master');
});
$http->on('request', function (\Swoole\Http\Request $request, $response) {
    log($request->server);
    $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
});
$http->on('workerstop', function () use($c) {
    \Swoole\Timer::after(10000, function () {
        log('task call');
    });
    \Swoole\Event::wait();
    log('time wait exit');
});
$http->start();
kill $MASTER_PID

执行 kill 后 \Swoole\Event::wait() 不起作用.

求思路!!

阅读 2.5k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏