代码如下:
问题:
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();
status只有一个进程是正常的,onWorkerStart时创建的worker实例不会开启新的进程。是在原有进程里面监听端口,也就上面代码是一个进程同时监听2015和12345端口。
如果是以daemon(-d)方式启动,worker start是不会输出的。
你贴的代码我测试是正常的,worker start有输出。
是能输出worker start,但是不能输出task start是吗?我这里是这样的
onWorkerStart 是进程启动时产生的回调,因为当前进程已经启动,所以不会触发。
你可以直接在listen()后写原本在onWorkerStart时触发的代码。