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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
初步解析Python中的yield函数的用法
Apr 03 Python
PyQT实现多窗口切换
Apr 20 Python
Python返回数组/List长度的实例
Jun 23 Python
python实现机器学习之元线性回归
Sep 06 Python
python中的decimal类型转换实例详解
Jun 26 Python
Python求离散序列导数的示例
Jul 10 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
Python猴子补丁知识点总结
Jan 05 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
linux mint中搜狗输入法导致pycharm卡死的问题
Oct 28 Python
matplotlib之属性组合包(cycler)的使用
Feb 24 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插入排序实现代码
2013/04/04 PHP
PHP图片水印类的封装
2017/07/06 PHP
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
基于js disabled="false"不起作用的解决办法
2013/06/26 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python代码调试的几种方法总结
2015/04/15 Python
利用python修改json文件的value方法
2018/12/31 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
python实现udp传输图片功能
2020/03/20 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
英国网上花店:Bunches
2016/11/29 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
高三历史教学反思
2014/01/09 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
我的祖国演讲稿
2014/05/04 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
遗失证明范文
2015/06/19 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记