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 相关文章推荐
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
PYTHON 中使用 GLOBAL引发的一系列问题
Oct 12 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
Python实现针对给定单链表删除指定节点的方法
Apr 12 Python
Python中collections模块的基本使用教程
Dec 07 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
Django之form组件自动校验数据实现
Jan 14 Python
vue常用指令代码实例总结
Mar 16 Python
python中zip()函数遍历多个列表方法
Feb 18 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
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
Javascript 函数对象的多重身份
2009/06/28 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
JQuery魔力之$("tagName")与selector
2012/03/05 Javascript
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
JS画线(实例代码)
2013/11/20 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
js实现右键菜单功能
2016/11/28 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
Vue解析带html标签的字符串为dom的实例
2019/11/13 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Django model序列化为json的方法示例
2018/10/16 Python
简单了解python协程的相关知识
2019/08/31 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
信访工作经验交流材料
2014/05/23 职场文书
普通话宣传标语
2014/06/26 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库