python的schedule定时任务模块二次封装方法


Posted in Python onFebruary 19, 2019

通过定时来执行任务,我们日常工作生活中会经常用到。python有schedule这个库,简单好用,比如,可以每秒,每分,每小时,每天,每天的某个时间点,间隔天数的某个时间点定时执行,另外自己又写了一个可以自定义时间点来定时执行任务,代码如下。

import schedule
import time
 
class Timing():
 
 #按秒循环定时执行任务
 def doEverySecond(self,seconds,job_func):
  try:
   schedule.every(seconds).seconds.do(job_func)
   while True:
    schedule.run_pending()
 
  except Exception as e:
   raise e
 
 # 按分钟循环定时执行任务
 def doEveryMinutes(self,minutes,job_func):
  try:
   schedule.every(minutes).minutes.do(job_func)
   while True:
    schedule.run_pending()
 
  except Exception as e:
   raise e
 
 # 按小时循环定时执行任务
 def doEveryHours(self,Hours,job_func):
  try:
   schedule.every(Hours).minutes.do(job_func)
   while True:
    schedule.run_pending()
 
  except Exception as e:
   raise e
 
 
 #按天数在某个时刻定时执行任务
 def doEveryDay(self,time,job_func,days=1):
  try:
   schedule.every(days).days.at(time).do(job_func)
   while True:
    schedule.run_pending()
  except Exception as e:
   raise e
 
 
 #设置在每天的多个时刻定时执行任务,这个方法在实际工作中比较常用到
 def doEveryTime(self,time_str,job_func,days=1):
  '''
  :param time_str:
  :param job_func:
  :param days:
  :return: None
  example:time_str="10:30","10:45","11:00"
  '''
 
  try:
   list_time = time_str.split(",")
   for time in list_time:
    schedule.every(days).days.at(time).do(job_func)
   while True:
    schedule.run_pending()
  except Exception as e:
   raise e
 
 #自定义时间,dateTimes格式为:"2018-06-08 16:55,2018-06-08 16:56"
 def doJustTime(self,datestr,job_func):
  try:
   date_list = datestr.split(",")
   for i in date_list:
    #转换为unix时间戳格式
    timeArray = time.strptime(i, "%Y-%m-%d %H:%M")
    timestamp = time.mktime(timeArray)
    while True:
     now_time = round(time.time(),0)
     if timestamp == now_time:
      job_func()
      break
     else:
      time.sleep(1)
 
  except Exception as e:
   raise e
 
 
if __name__ == "__main__":
 def print1():
  print("ok")
 Timing().doJustTime('2018-06-08 17:53,2018-06-08 17:54',print1)

以上这篇python的schedule定时任务模块二次封装方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之私有函数和专有方法
Oct 24 Python
Python中Random和Math模块学习笔记
May 18 Python
Python数据结构之单链表详解
Sep 12 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
python3实现字符串操作的实例代码
Apr 16 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
Jun 12 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
Python读取yaml文件的详细教程
Jul 21 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
Python 实现RSA加解密文本文件
Dec 30 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 Python
python字典的元素访问实例详解
Jul 21 Python
Python3 max()函数基础用法
Feb 19 #Python
Python3 log10()函数简单用法
Feb 19 #Python
Python3中exp()函数用法分析
Feb 19 #Python
详解Python3中ceil()函数用法
Feb 19 #Python
django与小程序实现登录验证功能的示例代码
Feb 19 #Python
实例讲解Python3中abs()函数
Feb 19 #Python
python协程之动态添加任务的方法
Feb 19 #Python
You might like
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
Vue表单实例代码
2016/09/05 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
python实现飞机大战微信小游戏
2020/03/21 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
Django工程的分层结构详解
2019/07/18 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
美国最大的团购网站:Groupon
2016/07/23 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
新闻专业个人求职信
2013/12/19 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
总结Python常用的魔法方法
2021/05/25 Python
Django分页器的用法你都了解吗
2021/05/26 Python
纯html+css实现打字效果
2021/08/02 HTML / CSS