欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

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

时间:2020-10-25 14:23:56|栏目:Python代码|点击:

1.实现功能

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

2.具体实现代码

#-*-coding:utf-8 -*-
__author__ = 'Administrator'
import os,threading,time
curTime=time.strftime("%Y-%M-%D",time.localtime())#记录当前时间
execF=False
ncount=0
def 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 threading
import time
exec_count = 0
def 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 threading
import time
cancel_tmr = False
def 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中的asyncio代码详解

栏    目:Python代码

下一篇:PyQt5 实现字体大小自适应分辨率的方法

本文标题:python 定时器每天就执行一次的实现代码

本文地址:http://www.codeinn.net/misctech/15728.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有