本人在做项目的时候遇到一个问题:

某个函数需要在每个小时的 3 分钟时候被执行一次,我希望我 15:45 启动程序,过了18 分钟在 16:03 这个函数被执行一次,下一次过 60 分钟在 17:03 再次被执行,下一次 18:03,以此类推。

以下是我基于 Timer 做的再封装实现了此功能。

# -*- coding: utf-8 -*-

# ==================================================

# 对 Timer 做以下再封装的目的是:当某个功能需要每隔一段时间被

# 执行一次的时候,不需要在回调函数里对 Timer 做重新安装启动

# ==================================================

__author__ = 'liujiaxing'

from threading import Timer

from datetime import datetime

class MyTimer( object ):

def __init__( self, start_time, interval, callback_proc, args=None, kwargs=None ):

self.__timer = None

self.__start_time = start_time

self.__interval = interval

self.__callback_pro = callback_proc

self.__args = args if args is not None else []

self.__kwargs = kwargs if kwargs is not None else {}

def exec_callback( self, args=None, kwargs=None ):

self.__callback_pro( *self.__args, **self.__kwargs )

self.__timer = Timer( self.__interval, self.exec_callback )

self.__timer.start()

def start( self ):

interval = self.__interval - ( datetime.now().timestamp() - self.__start_time.timestamp() )

print( interval )

self.__timer = Timer( interval, self.exec_callback )

self.__timer.start()

def cancel( self ):

self.__timer.cancel()

self.__timer = None

class AA:

def hello( self, name, age ):

print( "[%s]\thello %s: %d\n" % ( datetime.now().strftime("%Y%m%d %H:%M:%S"), name, age ) )

if __name__ == "__main__":

aa = AA()

start = datetime.now().replace( minute=3, second=0, microsecond=0 )

tmr = MyTimer( start, 60*60, aa.hello, [ "owenliu", 18 ] )

tmr.start()

tmr.cancel()

以上这篇Python 实现某个功能每隔一段时间被执行一次的功能方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

python可以实现的功能_Python 实现某个功能每隔一段时间被执行一次的功能方法...相关推荐

  1. python每隔半个小时执行一次_python – 在进程中每隔一段时间执行一次任务

    如果您希望每2小时运行一次代码,最简单的方法就是使用cron或 类似的调度程序,具体取决于您的操作系统 如果你希望你的程序每n秒调用一次函数(在你的情况下为7200) 你可以使用一个线程和event. ...

  2. JAVA 编写程序实现如下功能:一个线程进行如下运算1*2+2*3+3*4+……+19*20,而另一个线程则每隔一段时间读取前一个线程的运算结果。

    编写程序实现如下功能:一个线程进行如下运算12+23+34+--+1920,而另一个线程则每隔一段时间读取前一个线程的运算结果. class Count{private int sum;Count(i ...

  3. python实现dfa过滤算法_Python实现DFA算法,完成实体词匹配和敏感词过滤等功能

    一.什么是DFA算法 DFA 全称为:Deterministic Finite Automaton,即确定有穷自动机.其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个 ...

  4. python怎么判断是不是列表_python判断变量是否为int、字符串、列表、元组、字典等方法...

    在实际写程序中,经常要对变量类型进行判断,除了用type(变量)这种方法外,还可以用isinstance方法判断: #!/usr/bin/env python a = 1 b = [1,2,3,4] ...

  5. python的异步网络编程_python异步网络编程怎么使socket关闭之后立即执行一段代码?...

    import socket from _socket import getdefaulttimeout class MySocket(socket.socket): """ ...

  6. python根据月份判断季度_python获取指定日期范围内的每一天,每个月,每季度的方法...

    1.获取所有天,返回一个列表: def getBetweenDay(begin_date): date_list = [] begin_date = datetime.datetime.strptim ...

  7. python每隔一段时间保存网页内容_利用Python轻松爬取网页题库答案!教孩子不怕尴尬了!...

    大家有没有遇到这种令人尴尬的情况:"好不容易在网上找到需要的资源数据,可是不容易下载下来!"如果是通过一页一页的粘贴复制来下载,真的让人难以忍受,特别是像我这种急性子,真得会让人窒 ...

  8. python怎样编写定时程序_Python如何实现定时器功能

    Timer: 隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话,就要在Timer调用的函数中,再次设置Timer.Timer是Thread的一个派生类 python中的线程提供了jav ...

  9. python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)

    通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL. GIL,中文译为全局解释器锁.在讲解 G ...

最新文章

  1. excel mysql日报_Excel日报自动化
  2. Python之pip:Python语言中的pip的简介、安装、使用方法之详细攻略
  3. android toast几种使用方法 (转)
  4. 掘金-Markdown 编辑器使用手册
  5. malloc钩子和内存泄漏工具mtrace、Valgrind
  6. 广东地下水资源摘录(早期版的)
  7. 明解java.pdf_明解C语言:中级篇 PDF下载
  8. TP-Link 886nV6 刷第三方系统回忆
  9. u盘安装红旗linux操作系统,如何用u盘安装红旗linux?
  10. DT(Detect to Track and Track to Detect)论文详读
  11. excel职称计算机应用,2017职称计算机考试Excel辅导:工作表的编辑
  12. 商务软件开发网课答案
  13. 用python创建widows窗口
  14. 序列化解决方案,就是采用二进制通信协议(数据报文格式)
  15. 极大似然函数取对数的原因
  16. Mycat分库分表实践
  17. HATEOAS 返回结果content被隐藏
  18. 简单实用的PHP分页代码
  19. 针式打印机打印WEB页面字体不清晰,解决方法
  20. ION基本概念介绍和原理分析[转]

热门文章

  1. 素数方法(thinking in java)
  2. FreeWheel容力:如何打造更高质效的技术团队
  3. 1800万元砸向子公司 点击网络巩固SaaS业务
  4. OGNL与Struts2标签展示页面(一)
  5. perl学习笔记(8)
  6. [新功能]查看好友最新随笔
  7. 什么是 C 和 C ++ 标准库?
  8. 真正的工业互联网!传统企业的数据建设之路,这3个场景不得不看
  9. 哥哥对弟弟说的s9t9太空堡垒
  10. 一步一步写STL:空间配置器(1)