一个启动文件只能启用一个worker进程吗

renji566

问题描述

我同一个thinkphp的入口文件比如index.php,用cli去访问控制器,在控制器里一个方法启动一个worker,开第二个的时候就提示进程已经在运行了,是不能用同一个启动文件吗

class A extend Controller{
public function a()
{
    $worker = new Worker();
    $worker->name = 'A';
    $worker->onWorkerStart = function () use (&$redis) {
    };
    Worker::runAll();
}

public function b()
{
    $worker = new Worker();
    $worker->name = 'B';
    $worker->onWorkerStart = function () {
    };

    Worker::runAll();

    }
}

假设TP的入口文件是index.php
php index.php A/a
php index.php A/b
启动第一个后,启动第二个会提示服务已经启动 Workerman[index.php] already running

84 1 0
1个回答

Workerman 启动之后不要想着用调用文件的方式去访问它的内部逻辑,相互之间改用通讯的方式来调用。比如在workerman中开一个/get/worker/state 的获取状态接口用thinkphp框架发起http请求访问内容

  • 暂无评论
🔝