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下的多进程编程
Apr 28 Python
收藏整理的一些Python常用方法和技巧
May 18 Python
Python数据类型学习笔记
Jan 13 Python
举例讲解Python面相对象编程中对象的属性与类的方法
Jan 19 Python
python中zip()方法应用实例分析
Apr 16 Python
python数据封装json格式数据
Mar 04 Python
Django使用HttpResponse返回图片并显示的方法
May 22 Python
python定位xpath 节点位置的方法
Aug 27 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
Keras设置以及获取权重的实现
Jun 19 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
Dec 05 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
关于crontab的使用详解
2013/06/24 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
React组件refs的使用详解
2018/02/09 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
将相和教学反思
2014/02/04 职场文书
护理专业求职信
2014/06/15 职场文书
英语教研活动总结
2014/07/02 职场文书
城管年度个人总结
2015/02/28 职场文书
上班迟到检讨书
2015/05/06 职场文书
经营场所使用证明
2015/06/19 职场文书
2016年寒假见闻
2015/10/10 职场文书
使用tensorflow 实现反向传播求导
2021/05/26 Python