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