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爬虫之爬虫编写全记录
Nov 06 Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
python3的数据类型及数据类型转换实例详解
Aug 20 Python
python的slice notation的特殊用法详解
Dec 27 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
python中print格式化输出的问题
Apr 16 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
实用函数4
2007/11/08 PHP
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
php实现监听事件
2013/11/06 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
javascript 单选框,多选框美化代码
2008/08/01 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
jquery自定义表格样式
2015/11/23 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
Python分析学校四六级过关情况
2017/11/22 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
护士辞职信范文
2014/01/19 职场文书
老公给老婆的保证书
2014/04/28 职场文书
企业贷款委托书格式
2014/09/12 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
保送生自荐信范文
2015/03/26 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏