python 定时器每天就执行一次的实现代码
1.实现功能
编写python脚本一直运行,判断当下是否是新的一天,如果是就执行一次任务代码
2.具体实现代码
#-*-coding:utf-8-*-
__author__='Administrator'
importos,threading,time
curTime=time.strftime("%Y-%M-%D",time.localtime())#记录当前时间
execF=False
ncount=0
defexecTask():
#具体任务执行内容
print("execTaskexecuted!")
deftimerTask():
globalexecF
globalcurTime
globalncount
ifexecFisFalse:
execTask()#判断任务是否执行过,没有执行就执行
execF=True
else:#任务执行过,判断时间是否新的一天。如果是就执行任务
desTime=time.strftime("%Y-%M-%D",time.localtime())
ifdesTime>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秒:
importthreading
importtime
exec_count=0
defheart_beat():
printtime.strftime('%Y-%m-%d%H:%M:%S')
globalexec_count
exec_count+=1
#15秒后停止定时器
ifexec_count<15:
threading.Timer(1,heart_beat).start()
heart_beat()
另一种判断方式:
importthreading
importtime
cancel_tmr=False
defheart_beat():
printtime.strftime('%Y-%m-%d%H:%M:%S')
ifnotcancel_tmr:
threading.Timer(1,heart_beat).start()
heart_beat()
#15秒后停止定时器
time.sleep(15)
cancel_tmr=True
总结
以上所述是小编给大家介绍的python定时器每天就执行一次的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!