python 一次性定时器_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 定时器每天就执行一次的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对谷谷点程序网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值