每1个进程设置一个定时器的问题?

adminx

问题描述

设置进程数为2
在id编号为0的进程上设置1个定时器,在id编号为1的进程上设置了另外1个定时器,为什么前台建立的连接收到的推送要么是222,要么是333,而不是222,333在一起的?

下面这个收到的都是222
截图

下面这个收到的都是333
截图

$worker->onWorkerStart = function($worker) {
    if($worker->id === 0)
    {
        Timer::add(2, function(){
            broadcast(222);
        });
    }

    if($worker->id === 1)
    {
        Timer::add(3, function(){
            broadcast(333);
        });
    }
};

function broadcast($message)
{
    global $worker;
    foreach($worker->connections as $connection)
    {
        $connection->send($message);
    }
}
585 1 0
1个回答

Gin

进程与连接是 一对多的关系

  • adminx 2023-03-15

    是不是可以理解成,前台在建立连接的时候,会随机分配到id编号为0的进程上,或者随机分配到id编号为1的进程上?

  • adminx 2023-03-15

    谢了大哥

  • Gin 2023-03-15

    是的

年代过于久远,无法发表回答
🔝