问题描述
使用time做定时任务,但是一直会有一段时间被跳过,下面是我设置5分钟打印一次的日志。
问题出现的环境背景及自己尝试过哪些方法
原来以为是每次sleep的时间比较长(原设置为睡58*60),后面改成上面的sleep(1),仍然有上面的问题。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
interval = 58 * 60
count = interval
while 1:
count -= 1
if count > 0:
if count % 300 == 0:
NORMAL_LOG(time.strftime(u"%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
# NORMAL_LOG("c:%d" % count)
time.sleep(1)
else:
try:
thread.start_new_thread(check_code_style, ())
except Exception:
tip_str = u"创建线程失败"
NORMAL_LOG(tip_str)
send_email_to_myself(tip_str)
count = interval
你期待的结果是什么?实际看到的错误信息又是什么?
理想状态应该不会跳过这么长时间,也没有报任何错误,看了相关文档也没有什么发现。
这个问题的原因后来我自己无意中发现了,是因为我的电脑的节能配置有问题。这里不能贴图片,所以我大概讲下。就是我在节能中配置了“如果可能,使硬盘进入睡眠”这个选项,当我将这个选项去掉后,再测试就正常了。我也没清楚为什么这个选项会造成这样的影响,如果是进入睡眠模式,不应该到凌晨还会自己再启动?