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实现优先级队列结构的方法详解
Jun 02 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
Python基础中所出现的异常报错总结
Nov 19 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
Flask框架模板渲染操作简单示例
Jul 31 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
Python 自由定制表格的实现示例
Mar 20 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
Python文件名匹配与文件复制的实现
Dec 11 Python
python Scrapy框架原理解析
Jan 04 Python
matplotlib grid()设置网格线外观的实现
Feb 22 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连接access数据库
2008/03/27 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
Python之eval()函数危险性浅析
2014/07/03 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
python flask安装和命令详解
2019/04/02 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Django Rest framework频率原理与限制
2019/07/26 Python
Django models filter筛选条件详解
2020/03/16 Python
django ORM之values和annotate使用详解
2020/05/19 Python
Python 实现一个简单的web服务器
2021/01/03 Python
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
2015年评职称工作总结范文
2015/04/20 职场文书
班级班风口号大全
2015/12/25 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android
JavaScript 对象创建的3种方法
2021/11/17 Javascript