关于listen、run和runAll的问题

胡作非为还响桃

问题描述

为了便于服务区分,我新建了一个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加入?不知道是否正确。

79 1 0
1个回答

胡桃

进程总会启动,跟run和listen无关,listen不会执行onworkerstart回调

  • 暂无评论
🔝