GatewayWorker的定时器,如何向workman一样指定某个进程去定时执行

smj227227

GatewayWorker的定时器,如何向workman一样指定某个进程去定时执行
类似:

$worker->onWorkerStart = function($worker)
{
    // 只在id编号为0的进程上设置定时器,其它1、2、3号进程不设置定时器
    if($worker->id === 0)
    {
        Timer::add(1, function(){
            echo "4个worker进程,只在0号进程设置定时器\n";
        });
    }
};
5523 3 0
3个回答

smj227227

现在有个需求就是,每隔10秒向所有客户端广播一次消息,但如果开了4个进程,那这条消息就会发送4次,所以想在定时器与某个进程的id绑定,专门由这个进程去广播

  • 暂无评论
damao
public static function onMessage($worker) {
    if($worker->id === 0)
    {
        Timer::add(1, function(){
            ...
        });
    }
}

我是这样用的

  • smj227227 2018-03-06

    你这个onMessage 里的worker是怎么来的....

  • damao 2018-03-06

    框架自动传进来的啊

lalala
public static function onWorkerStart($businessWorker)
{ 
       if ($businessWorker->id == 0) {

       } 
}
  • 暂无评论
年代过于久远,无法发表回答
🔝