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遍历类中所有成员的方法
Mar 18 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
python爬取淘宝商品详情页数据
Feb 23 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
python对文件的操作方法汇总
Feb 28 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
Apr 15 Python
Python中实现输入一个整数的案例
May 03 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
Python编程根据字典列表相同键的值进行合并
Oct 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
提升PHP执行速度全攻略(上)
2006/10/09 PHP
php 错误处理经验分享
2011/10/11 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
python实现在pandas.DataFrame添加一行
2018/04/04 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python3正则模块re的使用方法详解
2020/02/11 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
人事行政主管岗位职责
2013/12/22 职场文书
感恩节活动方案
2014/01/27 职场文书
电焊工岗位职责
2014/03/06 职场文书
电力培训心得体会
2014/09/02 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript