使用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复制文件的方法实例详解
May 22 Python
python 实现对文件夹内的文件排序编号
Apr 12 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
使用Django搭建网站实现商品分页功能
May 22 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
Matplotlib配色之Colormap详解
Jan 05 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
将OICQ数据转成MYSQL数据
2006/10/09 PHP
简单的PHP图片上传程序
2008/03/27 PHP
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
Python解析nginx日志文件
2015/05/11 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
大学生毕业自我鉴定
2013/11/06 职场文书
高二历史教学反思
2014/01/25 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
企业投资意向书
2015/05/09 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python