Swoole\Process\Manager 子进程退出后的重启条件是什么?

我的需求是:
我想启动5个子进程干活,子进程异常退出时,想让主进程重新拉起这个子进程。
现在测试下来。每轮重新拉起都会少进程,至到剩下最后1个进程。
是我的问题,还是swoole的问题?
php7.3
swoole 4.6.5

<?php
use Swoole\Process\Manager;
use Swoole\Process\Pool;


$pname_tpl='php-Test:%s:%d';
$pname =sprintf($pname_tpl, 'master', -1);
swoole_set_process_name($pname);
echo $pname."\tstart done\n";

$pm = new Manager();
$pm->addBatch(5, function (Pool $pool, int $workerId) use($pname_tpl){
    $pname = sprintf($pname_tpl, 'km', $workerId);
    try {
        swoole_set_process_name($pname);
        echo $pname."\t\tstart done\n";

        $i=3;
        while ($i--){
            sleep(1);
        }
    }
    catch (\Throwable $e){
        echo printf('%s process restart: %d %s', $pname, $e->getLine(), $e->getMessage());
    }

    echo $pname."\t\t exit\n";
    sleep(3);
});

$pm->start();

阅读 2.5k
1 个回答

image.png
测试正常

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