守护进程重启会强制终端正在进行的操作吗?

augushong

问题描述

守护进程重启会强制终端正在进行的操作吗?

像下面代码这样:

$worker->onWorkerStart = function (Worker $worker) {
    Timer::add(
        0.1,
        function () {
            // 耗时操作,执行五秒
            file_get_content(xxx);

        }
    );

};

比如设置了一个定时器,里面有耗时操作,假设需要执行5秒,此时执行stop或restart命令,会直接杀死这个进程还是等这个定时器完成了,不再进入下一轮,然后终止进程或重启。

另一个情况,如果有外部连接,worker收到请求后把它转发到其他端口上,此时如果执行stop或restart的流程是怎样的呢?先停止接受新的请求,然后等待旧的请求关闭?还是直接强制关闭掉了。

868 1 0
1个回答

liziyu
  • augushong 2023-02-08

    不只是请求。像这种定时任务,会怎么处理呢?也是等待2s就强制杀死吗,我最近使用发现,好像是会强制杀死。reload没试过,等下试试

  • walkor 2023-02-08

    2秒可以设置,例如设置5秒

     \Workerman\Worker::$stopTimeout = 5;
年代过于久远,无法发表回答
×
🔝