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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
Python的Tornado框架异步编程入门实例
Apr 24 Python
python3中dict(字典)的使用方法示例
Mar 22 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
Python高级特性——详解多维数组切片(Slice)
Nov 26 Python
Flask缓存静态文件的具体方法
Aug 02 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
Aug 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
PHP 微信支付类 demo
2015/11/30 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
javascript一点特殊用法
2008/05/28 Javascript
ASP Json Parser修正版
2009/12/06 Javascript
Javascript中Eval函数的使用
2010/03/23 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
2013/04/23 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
vue 组件简介
2020/07/31 Javascript
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python映射拆分操作符用法实例
2015/05/19 Python
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
经理秘书找工作求职信
2013/12/19 职场文书
学校节能减排倡议书
2014/05/16 职场文书
安全宣传标语口号
2014/06/06 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
情况说明书格式及范文
2019/06/24 职场文书