【python基础】定时任务框架APScheduler
1. 基础概念
APScheduler是python中较为简洁直观的定时任务框架,提供了基于固定日期、时间间隔、crontab表达式三种任务类型,并且可以持久化任务(如:将定时任务保存到mysql中),方便我们去实现一个python定时任务系统。
APScheduler由四个部件组成:
trigger:触发器,每个job都有一个包含触发逻辑的触发器, 触发器类型有三种:
<1> "date": 指定时间的一次性任务
<2> "interval": 有时间间隔的循环任务
<3> "cron": crontab表达式定时任务
jobstores:存储器, 存储被调度的job,默认是保存在内存中,也可以通过SQLAlchemyJobStore持久化到数据库中
executor:执行器, 提交指定的job到进程池或线程池来执行,运行完成通知调度器
<1> ThreadPoolExecutor: 线程池执行器,默认选用线程形式执行,进程比较耗资源
<2> ProcessPoolExecutor: 进程池执行器
scheduler:调度器, 负责job整体的控制调度, 配置指定的job存储器与执行器,也可以增加、删除、修改job
**两种常用调度器的区别:
<1> BlockingScheduler: 当调用start函数后会阻塞当前线程, 后面代码不会被执行
<2> BackgroundScheduler:当调用start函数后后台执行,不会阻塞后续代码的执行
2.示例代码

3.知识点整理
3.1. "interval"和"cron"类型的job均支持设置开始/结束时间参数
*start_date:作为计算周期的开始时间点,其实也明确了下次job触发的时间点
*end_date: job生命周期的终点
3.2. "cron"类型的任务不仅支持按照一个或多个时间域来设置,而且支持使用标准的crontab表达式
*CronTrigger.from_crontab('0/1 15 * * *')
注意:这里的crontab表达式是5位,分别对应的时间域minute, hour, day of month, month, day of week
3.3. 如果job需要传参,args传参必须是个有序的数据类型, 如列表,元组,字符串等,且元素数量和位置 = 入参数量和位置
3.4. scheduler添加/删除job的方法:
添加Job:scheduler.add_job()
@scheduler.scheduled_add() #具体函数的修饰器
删除Job: scheduler.remove('job_id')
3.5. 最好要设定时区timezone = 'Asia/Shanghai' (有点坑,因为个人办公电脑的UTC时区配置可能有偏差)
4. 更多细节 >>> Apscheduler官方文档: https://apscheduler.readthedocs.io/en/3.x/index.html
【python基础】定时任务框架APScheduler的更多相关文章
- Python中定时任务框架APScheduler
前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法. 一.APScheduler介绍 APSc ...
- Python中定时任务框架APScheduler的快速入门指南
前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法. 一.APScheduler介绍 APSc ...
- 定时任务框架APScheduler学习详解
APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站的程序等等,都涉及到了关于定时任务的问题,第 ...
- python 定时任务框架apscheduler
文章目录 安装 基本概念介绍 调度器的工作流程 实例1 -间隔性任务 实例2 - cron 任务 配置调度器 方法一 方法二 方法三: 启动调度器 方法一:使用默认的作业存储器: 方法二:使用数据库作 ...
- Python定时任务框架APScheduler 3.0.3 Cron示例
APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.基 ...
- 分布式定时任务框架——python定时任务框架APScheduler扩展
http://bbs.7boo.org/forum.php?mod=viewthread&tid=14546 如果将定时任务部署在一台服务器上,那么这个定时任务就是整个系统的单点,这台服务器出 ...
- Python定时任务框架APScheduler
http://blog.csdn.net/chosen0ne/article/details/7842421 APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz ...
- [转]Python定时任务框架APScheduler
APScheduler是基于Quartz的 一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以 持久化任务 ...
- Python 定时任务框架 APScheduler 详解
APScheduler 最近想写个任务调度程序,于是研究了下 Python 中的任务调度工具,比较有名的是:Celery,RQ,APScheduler. Celery:非常强大的分布式任务调度框架 R ...
- python Aspscheduler 定时任务框架使用
前几日,爬虫基本能爬点东西出来了,现在需要实现定时把数据爬到DB里去,可以使用windows定时任务执行py脚本,但好像不彻底,要做一个纯(jiao)粹(qing)的程序员,定时任务的重任落到了Asp ...
随机推荐
- IDEA创建Spring Boot项目无法连接http://start.spring.io 解决方法
1.修改代理 2. 搭建自己的SpringBoot initializer构建服务器 https://blog.csdn.net/KingBoyWorld/article/details/773732 ...
- k8s介绍和学习思路
1. Kubernetes介绍 Kubernetes是一个完备的分布式系统支撑平台.具备完备的集群管理能力,包括多层次的安全防护和准入机制.多租户应用支撑能力.透明的服务注册和服务发现机制.内建的智能 ...
- 解决WIN7下pl/sql连接弹出空白提示框问题
问题描述: win7 32位系统,已安装oracle10.0开发客户端,已配置数据库, 登陆pl/sql时出现空白提示框问题,尝试重装oracle无果,于是上网查找解决方法,逐步尝试,终于把客户端弄好 ...
- 9.29 2020 实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
一.实验目的 Mininet 安装之后,会连带安装 Open vSwitch,可以直接通过 Python 脚本调用Open vSwitch 命令,从而直接控制 Open vSwitch,通过实验了解调 ...
- Nginx版本。
Nginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版 ...
- TensorFlow安装填坑之路(Windows环境)
最近跟着简单粗暴 TensorFlow 2中的教学活动ML Study Jam 2020学习TensorFlow,记录下在Windows环境中安装TensorFlow时遇到的那些坑. TensorFl ...
- 【已解决】appium启动会话时遇到的的几种问题
第一种: 1.启动会话时一直卡在加载界面,报错log信息及截图如下 [ADB] Creating ADB subprocess with args: ["-P",5037,&quo ...
- 使用RPA有什么好处
通过本章学习,您将了解到: 什么是RPA RPA能为我们做些什么 使用RPA有什么好处 RPA的体系结构是什么 应用RPA是否需要深入了解这项技术 RPA的未来趋势怎么样 什么是RPA? RPA即Ro ...
- Mathematica制作和使用程序包
步骤 这里拿你制作并且使用一个程序包lost为例子 新建一个空白.wl文档,输入代码如下 BeginPackage[ "MyPkg`"] MainFunction::usage = ...
- 用户user退出登录
/** * 用户退出登录 * @param request * @return */ @PostMapping("/loginout") public R<String> ...