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的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
详解Python中的变量及其命名和打印
Mar 11 Python
python3 shelve模块的详解
Jul 08 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
python 解压pkl文件的方法
Oct 25 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
Django admin组件的使用
Oct 24 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 Python
pytorch 6 batch_train 批训练操作
May 28 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
简单的页面缓冲技术
2006/10/09 PHP
php的一个简单加密解密代码
2014/01/14 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
python名片管理系统开发
2020/06/18 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
python tkinter实现连连看游戏
2020/11/16 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
房屋改造计划书
2014/01/10 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
英语专业求职信
2014/07/08 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
通讯稿范文
2015/07/22 职场文书
python基础之错误和异常处理
2021/10/24 Python