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实现partial改变方法默认参数
Aug 18 Python
Python自动化构建工具scons使用入门笔记
Mar 10 Python
python正则表达式match和search用法实例
Mar 26 Python
Python单元测试框架unittest简明使用实例
Apr 13 Python
详解Python中的文件操作
Aug 28 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
Python cookie的保存与读取、SSL讲解
Feb 17 Python
Python requests设置代理的方法步骤
Feb 23 Python
django中嵌套的try-except实例
May 21 Python
Python爬取网页信息的示例
Sep 24 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编程最快明白》第三讲:php数组
2010/11/01 PHP
PHP实现下载功能的代码
2012/09/29 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
解析jquery获取父窗口的元素
2013/06/26 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
Python greenlet实现原理和使用示例
2014/09/24 Python
Python新手实现2048小游戏
2015/03/31 Python
Python连接字符串过程详解
2020/01/06 Python
python3判断IP地址的方法
2021/03/04 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
Linux常见面试题
2016/10/04 面试题
汉语言文学毕业生求职信
2013/10/01 职场文书
小学生安全保证书
2014/02/01 职场文书
四年级语文教学反思
2014/02/05 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
SQL CASE 表达式的具体使用
2022/03/21 SQL Server