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多线程抓取天涯帖子内容示例
Apr 03 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
python从内存地址上加载python对象过程详解
Jan 08 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 Python
对python中return与yield的区别详解
Mar 12 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
python statsmodel的使用
Dec 21 Python
Python使用Kubernetes API访问集群
May 30 Python
python如何利用traceback获取详细的异常信息
Jun 05 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学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
php设计模式 Visitor 访问者模式
2011/06/28 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Django中的Signal代码详解
2018/02/05 Python
Python requests库用法实例详解
2018/08/14 Python
python如何读取bin文件并下发串口
2019/07/05 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
工业自动化毕业生自荐信范文
2014/01/04 职场文书
优秀士兵先进事迹
2014/02/06 职场文书
借款协议书
2014/04/12 职场文书
股权转让协议书
2014/04/12 职场文书
保护环境演讲稿
2014/05/10 职场文书
预备党员对照检查材料思想汇报
2014/09/24 职场文书
甲午风云观后感
2015/06/02 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL
windows系统安装配置nginx环境
2022/06/28 Servers