× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

onWorkerExit

仅在开启reload_async特性后有效。异步重启特性,会先创建新的Worker进程处理新请求,旧的Worker进程自行退出。原型:

function onWorkerExit(swoole_server $server, int $worker_id);
  • Worker进程未退出,onWorkerExit会持续触发
  • onWorkerExit仅在Worker进程内触发,Task进程不执行onWorkerExit

旧的Worker进程,在退出时先会执行一次onWorkerStop事件回调,然后会在事件循环的每个周期结束时调用onWorkerExit通知Worker进程退出。

onWorkerExit中尽可能地移除/关闭异步的Socket连接,最终底层检测到Reactor中事件监听的句柄数量为0时退出进程。


  • Vijay

    实测,在4.0.0下,kill -USR1 pid,未触发此事件,请问有人知道怎么触发么?

  • twosee

    仅在开启reload_async特性后有效

  • 18180878848

    https://github.com/swoole/swoole-src/issues/2640