这篇教程Python定时库APScheduler的原理以及用法示例写得很实用,希望能帮到您。
1. APScheduler简介APscheduler全称Advanced Python Scheduler 作用为在指定的时间规则执行指定的作业。 - 指定时间规则的方式可以是间隔多久执行,可以是指定日期时间的执行,也可以类似Linux系统中Crontab中的方式执行任务。
- 指定的任务就是一个Python函数。
2. APScheduler组件APScheduler版本 3.6.3
2.1. APScheduler中几个重要的概念
2.1.1. Job 作业作用 Job作为APScheduler最小执行单位。 创建Job时指定执行的函数,函数中所需参数,Job执行时的一些设置信息。 构建说明 id:指定作业的唯一ID name:指定作业的名字 trigger:apscheduler定义的触发器,用于确定Job的执行时间,根据设置的trigger规则,计算得到下次执行此job的时间, 满足时将会执行 executor:apscheduler定义的执行器,job创建时设置执行器的名字,根据字符串你名字到scheduler获取到执行此job的 执行器,执行job指定的函数 max_instances:执行此job的最大实例数,executor执行job时,根据job的id来计算执行次数,根据设置的最大实例数来确定是否可执行 next_run_time:Job下次的执行时间,创建Job时可以指定一个时间[datetime],不指定的话则默认根据trigger获取触发时间 misfire_grace_time:Job的延迟执行时间,例如Job的计划执行时间是21:00:00,但因服务重启或其他原因导致21:00:31才执行,如果设置此key为40,则该job会继续执行,否则将会丢弃此job coalesce:Job是否合并执行,是一个bool值。例如scheduler停止20s后重启启动,而job的触发器设置为5s执行一次,因此此job错过了4个执行时间,如果设置为是,则会合并到一次执行,否则会逐个执行 func:Job执行的函数 args:Job执行函数需要的位置参数 kwargs:Job执行函数需要的关键字参数
2.1.2. Trigger 触发器Trigger绑定到Job,在scheduler调度筛选Job时,根据触发器的规则计算出Job的触发时间,然后与当前时间比较 确定此Job是否会被执行,总之就是根据trigger规则计算出下一个执行时间。 Trigger有多种种类,指定时间的DateTrigger,指定间隔时间的IntervalTrigger,像Linux的crontab一样的CronTrigger 目前APScheduler支持触发器: DateTrigger IntervalTrigger CronTrigger
2.1.3. Executor 执行器Executor在scheduler中初始化,另外也可通过scheduler的add_executor动态添加Executor。 使用spyder3调试python程序的实现步骤 OpenCV-Python图像轮廓之轮廓特征详解 |