hkui/process_manager

0.25 2022-01-05 00:24 UTC

This package is auto-updated.

Last update: 2024-09-05 06:32:08 UTC


README

说明

master-worker 进程任务管理,以守护进程方式运行,自动重启 worker

需要 swoole 和 posix

0.3

使用方法

1. 使用 composer 安装即可

composer require hkui/process_manager

2. 示例

demo.php

require '../../../vendor/autoload.php';
use ProcessManager\Process;

class demo extends Process
{
    public function runJob($worker, $index)
    {
        \swoole_set_process_name(sprintf('%s-worker-%d', 'test',$index));
        $i=0;
        while(true){
            $i++;
            echo posix_getpid()."=".$i.PHP_EOL;
            sleep(2);
            $this->isExit($i);

        }
    }
}
if(count($argv)<3){
    exit( "params lost".PHP_EOL);
}
$process_name=$argv[1];
$worker_num=3;
if(isset($argv[3])){
    $worker_num=intval($argv[3]);
}
$cmd=$argv[2];
$config=[
    'process_name'=>$process_name, //worker名称
    'worker_num'=>$worker_num, //开几个worker
    'out_file'=>'/tmp/out' //输出的日志
];

$process=new demo($config);
$process->run($cmd);

启动 开 3 个 worker
php demo.php test start 3

查看状态

php demo.php test status

Array
(
    [0] => 19456 19457 19458
    [1] => USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    [2] => hkui     19455  0.0  0.1 144952  5864 ?        Ss   08:29   0:00 test-master
    [3] => hkui     19456  0.0  0.1 147004  7316 ?        S    08:29   0:00  \_ test-worker-0
    [4] => hkui     19457  0.0  0.1 147004  7300 ?        S    08:29   0:00  \_ test-worker-1
    [5] => hkui     19458  0.0  0.1 147004  7296 ?        S    08:29   0:00  \_ test-worker-2
)

reload

php demo.php test reload
kill 19471 success
kill 19472 success
kill 19473 success

支持的命令

  • start: 开启
  • status: 查看状态
  • reload: 平滑重启 worker
  • stop: 停止 master worker