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 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
Python爬虫DNS解析缓存方法实例分析
Jun 02 Python
Python基于回溯法子集树模板解决m着色问题示例
Sep 07 Python
基于Python列表解析(列表推导式)
Jun 23 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
python实现月食效果实例代码
Jun 18 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
python操作链表的示例代码
Sep 27 Python
conda安装tensorflow和conda常用命令小结
Feb 20 Python
python如何利用cv2模块读取显示保存图片
Jun 04 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
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
js二维数组排序的简单示例代码
2014/01/24 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
部署Python的框架下的web app的详细教程
2015/04/30 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
django序列化serializers过程解析
2019/12/14 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
营业员实习自我鉴定
2013/12/07 职场文书
探矿工程师自荐信
2014/01/24 职场文书
付款委托书范本
2014/10/05 职场文书
鼋头渚导游词
2015/02/05 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
在校证明模板
2015/06/17 职场文书
采购员工作总结范文
2015/08/12 职场文书
学校体育节班级口号
2015/12/25 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python