内部动态创建的worker,onworkerstart没有输出

0

代码如下:
问题:
1,启动以后status 发现只有1个worker进程
2,内部worker的onworkerstart方法好像没有触发,没有输出 task start


$worker = new Worker('text://0.0.0.0:2015');
$worker->onWorkerStart = function($worker)
{
echo 'worker start';
$taskWorker=new Worker('Text://0.0.0.0:12345');
$taskWorker->onWorkerStart=function(){
echo 'task start';
};
$taskWorker->listen();
};

// 运行worker
Worker::runAll();
已邀请:

walkor

赞同来自:

status只有一个进程是正常的,onWorkerStart时创建的worker实例不会开启新的进程。是在原有进程里面监听端口,也就上面代码是一个进程同时监听2015和12345端口。


如果是以daemon(-d)方式启动,worker start是不会输出的。


你贴的代码我测试是正常的,worker start有输出。

walkor

赞同来自:

onWorkerStart 是进程启动时产生的回调,因为当前进程已经启动,所以不会触发。
你可以直接在listen()后写原本在onWorkerStart时触发的代码。

要回复问题请先登录注册