使用APScheduler3.0.1 实现定时任务的方法


Posted in Python onJuly 22, 2019

需求是在某一指定的时刻执行操作

网上的建议多为通过调用Scheduler的add_date_job实现

不过APScheduler 3.0.1与之前差异较大, 无法通过上述方法实现

参考 https://apscheduler.readthedocs.org/en/latest/userguide.html APScheduler 3.0.1的userguide 解决问题

from datetime import datetime
import time
import os
 
from apscheduler.schedulers.background import BackgroundScheduler
 
 
def tick():
 print('Tick! The time is: %s' % datetime.now())
 
 
if __name__ == '__main__':
 scheduler = BackgroundScheduler()
 scheduler.add_job(tick, 'interval', seconds=3)
 scheduler.start()
 print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
 
 try:
  # This is here to simulate application activity (which keeps the main thread alive).
  while True:
   time.sleep(2)
 except (KeyboardInterrupt, SystemExit):
  scheduler.shutdown() # Not strictly necessary if daemonic mode is enabled but should be done if possible

实例的代码实现每3秒执行一次tick方法,虽然与需求不符,但发现add_interval_job在APScheduler 3.0.1中 已经被

scheduler.add_job(tick, 'interval', seconds=3)

取代。

help(scheduler.add_job)得到

add_job(func, trigger=None, args=None, kwargs=None, id=None, name=None, misfire_grace_time=undefined, coalesce=undefined, max_instances=undefined, next_run_time=undefined, jobstore='default', executor='default', replace_existing=False, **trigger_args)
Adds the given job to the job list and wakes up the scheduler if it's already running.
 
Any option that defaults to undefined will be replaced with the corresponding default value when the job is scheduled (which happens when the scheduler is started, or immediately if the scheduler is already running).
 
The func argument can be given either as a callable object or a textual reference in the package.module:some.object format, where the first half (separated by :) is an importable module and the second half is a reference to the callable object, relative to the module.
 
The trigger argument can either be:
the alias name of the trigger (e.g. date, interval or cron), in which case any extra keyword arguments to this method are passed on to the trigger's constructor
an instance of a trigger class

由此可知,第参数为trigger,可取值为 date、interval、cron, **trigger_args为该trigger的构造函数。

通过源码找到DateTrigger 的构造函数

def __init__(self, run_date=None, timezone=None)

所以,只需将指定的时间传入add_job

scheduler.add_job(tick, 'date', run_date='2014-11-11 14:48:00')

以上这篇使用APScheduler3.0.1 实现定时任务的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
详解python的几种标准输出重定向方式
Aug 15 Python
Python探索之创建二叉树
Oct 25 Python
PyCharm在win10的64位系统安装实例
Nov 26 Python
使用python读取.text文件特定行的数据方法
Jan 28 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
python文件处理fileinput使用方法详解
Jan 02 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
通过实例解析python描述符原理作用
Jan 22 Python
Python 面向对象部分知识点小结
Mar 09 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
python flask框架快速入门
May 14 Python
Python定时任务APScheduler的实例实例详解
Jul 22 #Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 #Python
django云端留言板实例详解
Jul 22 #Python
python实现图片中文字分割效果
Jul 22 #Python
django用户登录验证的完整示例代码
Jul 21 #Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 #Python
详解Django模版中加载静态文件配置方法
Jul 21 #Python
You might like
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
python使用Tkinter显示网络图片的方法
2015/04/24 Python
python web基础之加载静态文件实例
2018/03/20 Python
浅谈python之新式类
2018/08/12 Python
通过PYTHON来实现图像分割详解
2019/06/26 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
Python networkx包的实现
2020/02/14 Python
keras中的History对象用法
2020/06/19 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
打架检讨书2000字
2014/02/22 职场文书
党员公开承诺书范文
2014/03/25 职场文书
医院信息公开实施方案
2014/05/09 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
教师节横幅标语
2014/10/08 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
个人收入证明格式
2015/06/24 职场文书
nginx rewrite功能使用场景分析
2022/05/30 Servers