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人人网登录应用实例
Sep 26 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
python2.7实现邮件发送功能
Dec 12 Python
python实现五子棋小程序
Jun 18 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
基于python操作ES实例详解
Nov 16 Python
Python常用库大全及简要说明
Jan 17 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 29 Python
python 模拟登录B站的示例代码
Dec 15 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
Anaconda安装pytorch和paddle的方法步骤
Apr 03 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
[57:47]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
理解Python中的类与实例
2015/04/27 Python
Python标准库之Sys模块使用详解
2015/05/23 Python
Python实现完整的事务操作示例
2017/06/20 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
python sleep和wait对比总结
2021/02/03 Python
往来会计岗位职责
2013/12/19 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书