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实现调用其他python脚本的方法
Oct 05 Python
python显示生日是星期几的方法
May 27 Python
python数据结构之图的实现方法
Jul 08 Python
python基础练习之几个简单的游戏
Nov 10 Python
django项目搭建与Session使用详解
Oct 10 Python
Python如何在main中调用函数内的函数方式
Jun 01 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
Python:__eq__和__str__函数的使用示例
Sep 26 Python
Python 实现进度条的六种方式
Jan 06 Python
Matplotlib绘制混淆矩阵的实现
May 27 Python
python opencv旋转图片的使用方法
Jun 04 Python
Python 数据科学 Matplotlib图库详解
Jul 07 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实现长连接的方法与注意事项的问题
2013/05/10 PHP
解析strtr函数的效率问题
2013/06/26 PHP
非常好用的Zend Framework分页类
2014/06/25 PHP
php技巧小结【推荐】
2017/01/19 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
jQuery自定义添加"$"与解决"$"冲突的方法
2015/01/19 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
懒加载实现的分页&&网站footer自适应
2016/12/21 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
Python数组条件过滤filter函数使用示例
2014/07/22 Python
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
举例介绍Python中的25个隐藏特性
2015/03/30 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
代码分析Python地图坐标转换
2018/02/08 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
印尼旅游网站:via
2017/11/12 全球购物
前台文员我鉴定
2014/01/12 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
追讨欠款律师函
2015/06/24 职场文书
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL