为了便于服务区分,我新建了一个process,在这个进程文件中的onWorkerStart函数中,我准备使用如下代码新建一个进程:
public function onWorkerStart(Worker $worker): void
{
$innerWorker = new Worker('tcp://0.0.0.0:6790');
$innerWorker->name = 'test-inner-worker';
$innerWorker->reusePort = false;
$innerWorker->onWorkerStart = function ($worker) {
echo "子线程开启";
Timer::add(5, function () {
echo "SubThread";
});
};
$innerWorker->listen();
// $innerWorker->run();
Timer::add(2, function () {
echo "MainThread";
});
}
我使用listen将其添加至现有的eventLoop中但似乎不起作用。而我使用run函数则线程就启动了。
能否为我讲解下代码的运行流程和逻辑?不胜感激!
我有查看您回答的“关于listen和runAll的问题”的内容。我理解是runAll已启动,无法再支持listen加入?不知道是否正确。
进程总会启动,跟run和listen无关,listen不会执行onworkerstart回调