count = 4; // 进程启动后定时推送数据给客户端 $worker->onWorkerStart = function($worker) use($config) { # 数据库链接不能在主进程,方法外是主进程 $dm = new Dm($config['connections']['dm']); // 每2.5秒执行一次 $time_interval = 3; Timer::add($time_interval, function()use($worker,$dm){ foreach($worker->connections as $connection) { $data = [ 'code' => 1, 'msg' => 'success' ]; # 客流趋势 与 占比 $allGroupTimeNumDay = PassFlow::allGroupTimeNum(['groupsId' => '','granularity' => 'daily'],$dm); $allGroupTimeNumMonth = PassFlow::allGroupTimeNum(['groupsId' => '','granularity' => 'monthly'],$dm); $allGroupTimeNumYear = PassFlow::allGroupTimeNum(['groupsId' => '','granularity' => 'yearly'],$dm); $data['allGroupTimeNumDay'] = ['data' => $allGroupTimeNumDay]; $data['allGroupTimeNumMonth'] = ['data' => $allGroupTimeNumMonth]; $data['allGroupTimeNumYear'] = ['data' => $allGroupTimeNumYear]; # 今日各场馆 $data['toDayGroupsEnterNum'] = ['data' => PassFlow::toDayGroupsEnterNum($dm)]; # 中间总数据 $data['allGroupNum'] = ['data' => PassFlow::allGroupNum($dm)]; # 各场馆实时 $data['realTimeData'] = ['data' => PassFlow::realTimeData($dm)]; $connection->send(json_encode($data)); } }); }; Worker::runAll();