【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 ...
随机推荐
- HTML基础知识学习
一.HTML概述 1.系统结构: ①.B/S架构 Browser Server(浏览器/服务器的交互形式.) Browser支持哪些语言:HTML CSS Javascript S是服务器端Serve ...
- 关于Centos7Th 初始化的一些概述
- 概述 Q:为什么要初始化,什么是初始化? A:一般初始化是根据的后期要部署的业务环境来定制的,新装的系统其自带的软件不够支撑各种开发环境或者运维工作:需要部署和设置对应的安全环境.开发/运维软件. ...
- store数据仓库
项目搭建 npm init vite-app GxShujukucd GxShujukunpm inpm i vue-router npm i vuex // 这一句是这节课的关键 新建store ① ...
- 第七章ssh sftp scp
第七章ssh sftp scp 对数据进行了加密和压缩 版本号协商,可能客户端和服务端的版本号不一致,服务端向客户端发送一个ssh协商,告诉客户端使用的ssh协议的版本号是多少,客户端在接收到了这个协 ...
- uni-popup 遮不住头部标题的解决办法
要做一个小程序,会有弹窗,但是uni-app的API组件uni.showModal不足以满足我的需求,于是我用HBuilderX引入了uni-popup. 代码是这样的 <button @cli ...
- 痞子衡嵌入式:分享一个i.MXRT系列配套DRAM压力测试上位机工具(i.MXRT DRAM Tester)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦SE团队制作的i.MXRT配套DRAM压力测试上位机工具. 事情源于痞子衡的技术交流群里的提问,有群友在恩智浦官方技术公众号 [恩 ...
- Apache Kafka教程--Kafka新手入门
Apache Kafka教程--Kafka新手入门 Kafka Assistant 是一款 Kafka GUI 管理工具--管理Broker,Topic,Group.查看消费详情.监控服务器状态.支持 ...
- 声网 MetaKTV 技术揭秘之“声临其境”:3D 空间音效+空气衰减+人声模糊
声网近期发布了"MetaChat 元语聊"."MetaKTV"解决方案,致力于提供一种全新的元宇宙互动社交.K 歌方式,其中都提到了"3D 空间音频& ...
- 小霸王、红白机、FC游戏、街机游戏在线玩的网站
前段时间小笨就想做一个红白机在线玩的网站,作为90后,也玩过不少小霸王fc游戏,于是花了两个星期时间做了出来.前端界面略丑,因为小笨不是专做前端的,就将就一下吧,哈哈!网站暂时添加了数款怀旧游戏,包括 ...
- 【ACM算法竞赛日常训练】DAY1题解与分析
DAY1 共四题: 月月查华华的手机:https://ac.nowcoder.com/acm/problem/23053 Rinne Loves Edges:https://ac.nowcoder.c ...