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获取当前时间的方法
Jan 14 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 Python
Python实现对比不同字体中的同一字符的显示效果
Apr 23 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
Python正则表达式经典入门教程
May 22 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
Dec 14 Python
Python 通配符删除文件的实例
Apr 24 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
python读写csv文件实例代码
Jul 05 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 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面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
jQuery拖拽 & 弹出层 介绍与示例
2013/12/27 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
Python 字符串中的字符倒转
2008/09/06 Python
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
python如何读写json数据
2018/03/21 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
CK美国官网:Calvin Klein
2016/08/26 全球购物
银行实习人员自我鉴定
2013/09/22 职场文书
服务明星事迹材料
2014/12/29 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
自荐信大全
2019/03/21 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书