情景是这样的:
每分钟会开场一局,也就是开了一个定时任务,每秒执行一次,去检测开场的。
但是出现某一局跳过的情况
$now_date = date("Y-m-d H:i:s", $now_date);
$lists = $db->select('*')
->from('game_room')
->where('start_at= :start_at AND status = 1')
->bindValues(array('start_at' => $now_date))
->query();
是什么情况下出现 一天几百局 就会有那么一两局被跳过
定时器设置为“每秒执行一次”,但实际上并不能保证“每一秒”都一定会被执行一次。比如有可能两次执行的间隔是 1.01 秒,但恰好中间有整整一秒被跳过了。
恩恩,这样啊,有没好的办法去解决这个情况呢
方法要结合你自己的业务逻辑来想,比如:
把 start_at= :start_at 改成 start_at <= :start_at 也许可行,但可能其它地方也需要有些改动。
@3346:恩恩 这个我倒知道 是想看看有没改动小的处理方案 谢啦~