python 定时任务触发(时序模型)

APSchedulera是一个强大的任务调度库,包含调度器、触发器、作业存储和执行器四大组件。调度器有BlockingScheduler和BackgroundScheduler两种,分别在主线程和后台线程运行。触发器包括date、interval和cron三种类型,用于控制任务执行的时间。date触发器用于一次性执行,interval按固定间隔执行,cron则按照cron表达式周期性执行。文章还介绍了如何添加、移除、修改和管理调度任务,以及使用不同类型的executor进行多线程执行。

APScheduler:
APScheduler 四个组件分别为:

 

  • 调度器(scheduler)、触发器(trigger),作业存储(job store),执行器(executor)

安装命令:

pip install setuptools
pip install --ignore-installed apscheduler

1 新建调度器schedulers

BlockingScheduler : 调度器在当前进程的主线程中运行,也就是会阻塞当前线程
BackgroundScheduler : 调度器在后台线程中运行,不会阻塞当前线程

import datetime as dt
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()

2 添加调度任务trigger

① date 触发器:(指定时间点触发),参数如下:

  • run_date(datetime或str):任务运行的日期或时间
  • timezone(datetime.tzinfo或str):指定时区
# 例1:在 2020-9-24 时刻运行一次 func 方法
scheduler.add_job(func, 'date', run_date = dt.date(2020, 9, 24))
# 例2: 在 2020-9-24 15:10:00 时刻运行一次 func 方法
scheduler.add_job(func, 'date', run_date = dt.datetime(2020, 9, 24, 15, 10, 0))
# 例3: 在 2020-9-24 15:11:00 时刻运行一次 func 方法
scheduler.add_job(func, 'date', run_date = '2020-9-24 15:11:00')

interval 触发器: (固定时间间隔触发),参数如下:

  •  weeks(int):间隔几周
  • days(int):间隔几天
  • hours(int):间隔几小时
  • minutes(int):间隔几分钟
  • seconds(int):间隔几秒钟
  • start_date(datetime或str):开始时间
  • end_date(datetime或str):结束时间
  • timezone(datetime.tzinfo或str):时区
# 例1:每隔两分钟执行一次 func 方法
scheduler.add_job(func, 'interval', minutes = 2)
# 例2:在 2020-9-24 15:15:0
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值