onWorkerStart里启动定时器,发现大概几分钟后同一时间连接执行了两次,打印也是有两次的,多次测试后确定这种现在,请问这是什么原因造成的?
public static function onWorkerStart($worker) {
//启动心跳检测定时器
Timer::add(5, function(){
echo '__start Timer' . "\n";
foreach (self::$heartList as $key => $value) {
echo '22--' . "\n";
if (self::$heartList < 1) {
} else { //重置处理
}
}
});
}
可能是设置了2个进程,每个进程打印一次
你加个判断啊,如果你开启了多个进程,只在第一个进程执行心跳验证
if($worker->id == 0){
//执行心跳定时器
}
加了,短时间好像都不会有问题的