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中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
Apr 25 Python
解析Python中的二进制位运算符
May 13 Python
python列表操作之extend和append的区别实例分析
Jul 28 Python
Python验证码识别处理实例
Dec 28 Python
Python如何通过subprocess调用adb命令详解
Aug 27 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
python删除本地夹里重复文件的方法
Nov 19 Python
python [:3] 实现提取数组中的数
Nov 27 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
python如何绘制疫情图
Sep 16 Python
Python如何导出导入所有依赖包详解
Jun 08 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设置允许大文件上传示例代码
2014/03/10 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
php轻松实现文件上传功能
2016/03/03 PHP
学习PHP session的传递方式
2016/06/15 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
六行python代码的爱心曲线详解
2019/05/17 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
如何让python的运行速度得到提升
2020/07/08 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
设置器与访问器的定义以及各自特点
2016/01/08 面试题
优秀护士先进事迹
2014/05/08 职场文书
2014年国庆节寄语
2014/09/19 职场文书
Python3 类型标注支持操作
2021/06/02 Python