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用ConfigObj读写配置文件的实现代码
Mar 04 Python
python判断、获取一张图片主色调的2个实例
Apr 10 Python
Python深入学习之装饰器
Aug 31 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
Jun 29 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
Python地图绘制实操详解
Mar 04 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 Python
Python文件操作模拟用户登陆代码实例
Jun 09 Python
Python datetime模块使用方法小结
Jun 18 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
python 如何用terminal输入参数
May 25 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
Python中super关键字用法实例分析
2015/05/28 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
深入浅出学习python装饰器
2017/09/29 Python
分析python切片原理和方法
2017/12/19 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Python如何调用外部系统命令
2019/08/07 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
HTML5实现签到 功能
2018/10/09 HTML / CSS
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
淘宝活动策划方案
2014/02/06 职场文书
求职推荐信范文
2015/03/27 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
初中毕业感言300字
2015/07/31 职场文书