【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 ...
随机推荐
- uc 小游戏接入经验
使用引擎,egret 相关资料: https://blog.csdn.net/weixin_42276579/article/details/107379544 https://minigame.uc ...
- CMake指定的任务可执行文件"cmd.exe" 未能运行。System.IO.IOException:未能创建临时文件。临时文件夹已满或其路径不正确。对路径"......exec.cmd "的访问被拒绝
我觉得是我使用VS2022的原因,网上也没有找到相同的问题.
- ARM-linux的Windows交叉编译环境搭建
交叉编译Arm Linux平台的QT5库 1.准备交叉编译环境 环境说明:Windows10 64位 此过程需要: (1)Qt库开源代码,我使用的是5.13.0版本: (2)Perl语言环境5.12版 ...
- mysql驱动下载
下载地址:https://dev.mysql.com/downloads/connector/j/ 下载步骤:Select Operating System: Platform Independent
- defer语句
1.defer语句 延时机制,在函数中,经常需要创建资源(比如:数据库连接.文件句柄.锁等),为了在函数执行完毕后,及时释放资源,使用defer a. 当执行defer时,暂时不执行,会将defer后 ...
- Codeforces Round #803 (Div. 2) A-D 刚vp完还没补题
Codeforces Round #803 (Div. 2) 2022/7/24 上午VP 传送门:https://codeforces.com/contest/1698 A. XOR Mixup 随 ...
- Jmeter之post上传文件(jmeter接口测试请求参数上传文件)
一,上传excel等普通文件 接口测试时有接口文档的话,那就对着文档写,没api文档,就自己抓包看了. 接口文档 抓包查看 步骤一:接口请求切换至文件上传(Files Upload)栏 content ...
- Axure RP Extension for Chrome 0.6.2安装和详解
1.当我们用网页访问一个本地页面时就会出现这种问题,提示你要安装浏览器的扩展程序包,以下有搜狗浏览器如何安装,qq浏览器
- JS和PHP中能转为布尔false的值的对比
实际开发中经常会使用到JS和PHP中的变量转布尔值进行条件判断,下面对两种语言中转布尔类型结果为false的值进行对比,加深记忆和方便引用. 除了下表列出项,其它的值均转成真值true . 转布尔值后 ...
- vue3-使用百度地图遇到的坑-地图实例化
1.创建地图实例 原因:在使用vue3为了只定义一次地图实例,在所有方法中使用,直接使用如下定义方式: setup() { const data = reactive({ bmap: null,}) ...