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使用matplotlib绘制折线图教程
Feb 08 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
Python实现感知器模型、两层神经网络
Dec 19 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
python 为什么说eval要慎用
Mar 26 Python
如何通过python画loss曲线的方法
Jun 26 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
python爬虫实现获取下一页代码
Mar 13 Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 Python
Vs Code中8个好用的python 扩展插件
Oct 12 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 Python
pandas DataFrame.shift()函数的具体使用
May 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 chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
python使用心得之获得github代码库列表
2014/06/25 Python
深入解析Python编程中JSON模块的使用
2015/10/15 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
python爬虫之自制英汉字典
2019/06/24 Python
pandas 数据类型转换的实现
2020/12/29 Python
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
中专毕业生求职简历的自我评价
2013/10/21 职场文书
店长岗位的工作内容
2013/11/12 职场文书
业务经理的岗位职责
2013/11/16 职场文书
《日月潭》教学反思
2014/02/28 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
2014年标准化工作总结
2014/12/17 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers