python 定时器每天就执行一次的实现代码

时间:2021-05-23

1.实现功能

编写python脚本一直运行,判断当下是否是新的一天,如果是就执行一次任务代码

2.具体实现代码

#-*-coding:utf-8 -*-__author__ = 'Administrator'import os,threading,timecurTime=time.strftime("%Y-%M-%D",time.localtime())#记录当前时间execF=Falsencount=0def execTask(): #具体任务执行内容 print("execTask executed!")def timerTask(): global execF global curTime global ncount if execF is False: execTask()#判断任务是否执行过,没有执行就执行 execF=True else:#任务执行过,判断时间是否新的一天。如果是就执行任务 desTime=time.strftime("%Y-%M-%D",time.localtime()) if desTime > curTime: execF = False#任务执行执行置值为 curTime=desTime ncount = ncount+1 timer = threading.Timer(5,timerTask) timer.start() print("定时器执行%d次"%(ncount))if __name__=="__main__": timer = threading.Timer(5,timerTask) timer.start()

使用Python 执行具体任务执行

知识点扩展:

Python: 定时器(Timer)简单实现

项目分析中发现有网站下载过程中需要发送心跳指令,复习下定时器,其与javascript中实现方法类似。

其原理为执行函数中置定时函数Timer(),递归调用自己,看来实现方法比较拙劣。

假定1秒触发一次,并置结束条件为15秒:

import threadingimport timeexec_count = 0def heart_beat(): print time.strftime('%Y-%m-%d %H:%M:%S') global exec_count exec_count += 1 # 15秒后停止定时器 if exec_count < 15: threading.Timer(1, heart_beat).start()heart_beat()

另一种判断方式:

import threadingimport timecancel_tmr = Falsedef heart_beat(): print time.strftime('%Y-%m-%d %H:%M:%S') if not cancel_tmr: threading.Timer(1, heart_beat).start()heart_beat()# 15秒后停止定时器time.sleep(15) cancel_tmr = True

总结

以上所述是小编给大家介绍的python 定时器每天就执行一次的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章