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使用Socket(Https)Post登录百度的实现代码
May 18 Python
Python发送email的3种方法
Apr 28 Python
Python Requests 基础入门
Apr 07 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
Python多进程原理与用法分析
Aug 21 Python
python中的tcp示例详解
Dec 09 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
详解Python中下划线的5种含义
Jul 15 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
jQuery的12招常用技巧分享
2011/08/08 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
用实例分析Python中method的参数传递过程
2015/04/02 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
Python常用外部指令执行代码实例
2020/11/05 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
飞利浦美国官网:Philips美国
2020/02/28 全球购物
小学科学教学反思
2014/01/26 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
给校长的建议书200字
2014/05/16 职场文书
学校四风对照检查材料
2014/08/28 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
合同审查法律意见书
2015/06/04 职场文书
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL