Python如何实现定时器功能


Posted in Python onMay 28, 2020

Timer: 隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话,就要在Timer调用的函数中,再次设置Timer。Timer是Thread的一个派生类

python中的线程提供了java线程功能的子集。

#!/usr/bin/env python
from threading import Timer
import time
timer_interval=1
def delayrun():
 print 'running'
t=Timer(timer_interval,delayrun)
t.start()
while True:
 time.sleep(0.1)
 print 'main running'

t是一个Timer对象。delay一秒钟之后执行delayrun函数。

其中time.sleep函数是用来让主线程暂停一点时间再继续执行。

实例扩展:

Python3定时器任务代码

import time
import sys
import signal
import datetime
import threading
#定时器
def schedule_update():
  t = threading.Timer(0, event_func)
  t.setDaemon(True)
  t.start()
#执行函数
def event_func():
  now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  print(now_time)
  exec_update()
  #update_openvas_dbs_from_cache()
  interval_time = delay_time()
  t = threading.Timer(interval_time, event_func)
  t.setDaemon(True)
  t.start()
#取时间点
def delay_time():
  # now time
  now_time = datetime.datetime.now()
  # tomorrow time
  next_time = now_time + datetime.timedelta(days=+1)
  next_year = next_time.date().year
  next_month = next_time.date().month
  next_day = next_time.date().day
  # get tomorrow 00:00
  next_time = datetime.datetime.strptime(str(next_year)+"-"+str(next_month)+"-"+str(next_day)+" 00:00:00", "%Y-%m-%d %H:%M:%S")
  # get secondes
  delay_time = (next_time - now_time).total_seconds()
  return delay_time
def quit_sys(signum, frame):
  sys.exit()
#接收C
if __name__ == "__main__":
  try:
    signal.signal(signal.SIGINT, quit_sys)
    signal.signal(signal.SIGTERM, quit_sys)
    schedule_update()
    print("schedule_update server starting up...\nHit Ctrl-C to quit.\n")
    while 1:
      time.sleep(1)
  except Exception as e:
    print(e)

到此这篇关于Python如何实现定时器功能的文章就介绍到这了,更多相关Python中的简单定时器实例内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
Python输出9*9乘法表的方法
May 25 Python
Python基础知识_浅谈用户交互
May 31 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
对python使用http、https代理的实例讲解
May 07 Python
Python使用progressbar模块实现的显示进度条功能
May 31 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
Python安装pycurl失败的解决方法
Oct 15 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
python利用appium实现手机APP自动化的示例
Jan 26 Python
python实点云分割k-means(sklearn)详解
May 28 #Python
Python脚本实现监听服务器的思路代码详解
May 28 #Python
python中Ansible模块的Playbook的具体使用
May 28 #Python
python中如何进行连乘计算
May 28 #Python
python线程池如何使用
May 28 #Python
python中前缀运算符 *和 **的用法示例详解
May 28 #Python
PHP基于phpqrcode类库生成二维码过程解析
May 28 #Python
You might like
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
写的htc的数据表格
2007/01/20 Javascript
JavaScript 特殊字符
2007/04/05 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
javascript天然的迭代器
2010/10/29 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
Python类的基础入门知识
2008/11/24 Python
Python实现网站注册验证码生成类
2017/06/08 Python
有关Python的22个编程技巧
2018/08/29 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
python 实现让字典的value 成为列表
2019/12/16 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
考试作弊万能检讨书
2014/10/19 职场文书
2014年工程工作总结
2014/11/25 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
PHP解决高并发问题
2021/04/01 PHP
【2·13】一图读懂中国无线电发展
2022/02/18 无线电