线上环境关于时间查询的一个坑
作者:James Zhu (fatindeed@hotmail.com)
创建日期:2018-07-05
引言
EPP有个自动补货脚本,脚本每12分钟运行一次。最近得到反馈,好几次设置的12点整,却没有完成补货。这是为什么呢?
问题排查
取活动设置的代码如下:
最终执行的SQL类似:
那么问题在哪呢?
通过猜测并在线上记录日志,发现计划任务触发的时间略有波动,以下记录了一段时间内$nextRunTimeBefore
的值,结果如下:
2018-07-05 12:00:00
2018-07-05 12:11:59
2018-07-05 12:23:59
2018-07-05 12:36:00
2018-07-05 12:48:00
那么问题就比较清楚了,因为PHP服务器的时间与期望的时间略有差异,因此对于这种时间精度要求比较高的查询语句,就会造成没有查询结果。因此,我对代码稍作修改,解决了这个问题。
Last updated