使用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多线程编程(四):使用Lock互斥锁
Apr 05 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
python中set()函数简介及实例解析
Jan 09 Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 Python
Python实现网站表单提交和模板
Jan 15 Python
Python3几个常见问题的处理方法
Feb 26 Python
Python中turtle库的使用实例
Sep 09 Python
django框架forms组件用法实例详解
Dec 10 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
python绘制趋势图的示例
Sep 17 Python
python入门教程之基本算术运算符
Nov 13 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环境――Appserv
2006/12/13 PHP
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
OpenLayers3实现测量功能
2020/09/25 Javascript
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
深入理解Python中的内置常量
2017/05/20 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
css图标制作教程制作云图标
2014/01/19 HTML / CSS
HTML5计时器小例子
2013/10/15 HTML / CSS
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
毕业自我鉴定
2013/11/05 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
预备党员转正意见
2015/06/01 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python
教你用python控制安卓手机
2021/05/13 Python