当前位置: 首页 > news >正文

Python基础(⑧APScheduler任务调度框架)

APScheduler 是一个功能强大的定时任务调度框架,主要用来自动在指定时间或按照一定规律重复执行代码。它的核心价值是帮你 “自动化” 那些需要定时执行的操作,无需人工干预。

具体能做什么?举几个常见场景:
1. 周期性任务
定时备份数据:比如每天凌晨 2 点自动备份数据库
定时清理文件:比如每小时删除临时文件夹中的过期文件
定时同步数据:比如每 10 分钟从远程接口同步一次数据
2. 一次性定时任务
延迟执行操作:比如用户下单后,30 分钟内未支付就自动取消订单
未来某时执行:比如预约明天早上 8 点发送提醒消息
3. 复杂时间规则任务
按工作日执行:比如每周一至周五下午 5 点生成日报
按月执行:比如每月 1 号生成上月财务报表
特定日期执行:比如每年 12 月 31 日执行年度统计
4. 与其他框架结合
Web 应用中:在 Django/Flask 里,用它定时更新缓存、发送邮件通知
爬虫程序中:定时爬取目标网站的最新数据
监控系统中:每隔一段时间检查服务器状态,异常时报警

APScheduler 有 4 个核心组件:

触发器(Trigger):决定任务何时执行(日期、间隔、 cron 表达式)
任务(Job):要执行的函数或方法
执行器(Executor):负责执行任务(如线程池、进程池)
调度器(Scheduler):协调上述组件,是核心控制器

from apscheduler.schedulers.blocking import BlockingScheduler
import datetime# 定义要执行的任务
def job1():print(f"任务1执行:{datetime.datetime.now()}")def job2(name):print(f"任务2({name})执行:{datetime.datetime.now()}")# 创建调度器(BlockingScheduler 会阻塞当前线程,适合脚本运行)
scheduler = BlockingScheduler()# 1. 间隔触发器(interval):每隔一段时间执行
# 每隔 5 秒执行 job1
scheduler.add_job(job1,'interval',seconds=5,id='job1'  # 给任务设置唯一ID,方便后续操作
)# 2. 日期触发器(date):在特定时间点执行一次
# 在 3 秒后执行 job2(传递参数)
run_time = datetime.datetime.now() + datetime.timedelta(seconds=3)
scheduler.add_job(job2,'date',run_date=run_time,args=['一次性任务'],  # 传递给 job2 的参数id='job2'
)# 3. Cron 触发器(cron):类似 Linux 的 cron 表达式,适合复杂定时
# 每分钟的第 0 秒执行 job1(即每分钟执行一次)
scheduler.add_job(job1,'cron',minute='*',  # 每分钟second=0,    # 第 0 秒id='job3'
)print("调度器开始运行...")
print("当前时间:", datetime.datetime.now())
print("按 Ctrl+C 停止")# 启动调度器(程序会阻塞在这里)
try:scheduler.start()
except (KeyboardInterrupt, SystemExit):pass

任务操作

# 暂停任务
scheduler.pause_job('job1')# 恢复任务
scheduler.resume_job('job1')# 修改任务(如修改间隔为 10 秒)
scheduler.modify_job('job1', seconds=10)# 删除任务
scheduler.remove_job('job1')

123


文章转载自:

http://Dbrf1HUz.hwycs.cn
http://g5T1XUfR.hwycs.cn
http://1QgR0dJb.hwycs.cn
http://TyiHGJts.hwycs.cn
http://XFh0nqBC.hwycs.cn
http://FXNnc55s.hwycs.cn
http://xYwkqNcm.hwycs.cn
http://zfmPlu6c.hwycs.cn
http://EpYIjBM2.hwycs.cn
http://mvkjyhkC.hwycs.cn
http://j9KmJDAx.hwycs.cn
http://ZTOjBXhg.hwycs.cn
http://TpWlgx0i.hwycs.cn
http://c6ckYsJM.hwycs.cn
http://uArPoQ6l.hwycs.cn
http://MNwo3Y5k.hwycs.cn
http://lRUM23yM.hwycs.cn
http://UClK7hFW.hwycs.cn
http://evmzHGmT.hwycs.cn
http://DJiOaADE.hwycs.cn
http://gqOJSQ2N.hwycs.cn
http://aJb7fGAe.hwycs.cn
http://esfl8gRx.hwycs.cn
http://3OVA2Iaa.hwycs.cn
http://Hp3Jhd44.hwycs.cn
http://XcQvdJNV.hwycs.cn
http://FNCjvCmZ.hwycs.cn
http://fYWLbdG7.hwycs.cn
http://fGFEypQV.hwycs.cn
http://7FtqM7Hm.hwycs.cn
http://www.dtcms.com/a/366043.html

相关文章:

  • 数据结构从青铜到王者第十九话---Map和Set(2)
  • git之分支
  • 如何创建交换空间
  • 【音视频】视频秒播优化实践
  • 无穿戴动捕如何深度结合AI数据分析,实现精准动作评估?
  • 代码随想录刷题Day48
  • Linux 字符设备驱动框架学习记录(三)
  • 数学建模-非线性规划(NLP)
  • STM32HAL 快速入门(十七):UART 硬件结构 —— 从寄存器到数据收发流程
  • DOM常见的操作有哪些?
  • Day34 UDP套接字编程 可靠文件传输与实时双向聊天系统
  • 信号调制与解调 matlab仿真
  • 异常处理机制与debug
  • 复写零(双指针)
  • 单片机day2
  • 配置时钟分频与倍频
  • 解构复杂财务逆向业务:如何优雅地生成与管理负数单?
  • Python基础(⑥属性装饰器)
  • 你只需输入一句话,MoneyPrinterTurbo直接给你输出一个视频
  • 普通人如何用 AI 提效?5 个低门槛工具 + 3 类场景案例,让 AI 成为日常助手
  • phpstorm 操作git 另外的操作在 我的收藏
  • c#编写的应用程序调用不在同一文件夹下的DLL
  • Java继承
  • c++ zint二维码、条形码开发库
  • c++多线程(1)------创建和管理线程td::thread
  • Python数据分析与处理(二):将数据写回.mat文件的不同方法【超详细】
  • AI+法律:用ERNIE-Bot解析合同条款,识别风险点
  • 进程管理和IPC
  • 常用假设检验方法及 Python 实现
  • 多层环境室内定位系统综述总结