4.python-定时任务框架
定时任务框架
APScheduler提供了基于间隔、周期及时间的定时任务
在命令行安装
# Linux操作系统:sudo pip install apscheduler # Windows操作系统:pip install apscheduler
调度器
阻塞 BlockingScheduler:主程序将等待调度器的执行
后台 BackgroundScheduler:调度器不影响主程序,但随主程序结束而停止(适用于长时间运行程序)
触发器
间隔 IntervalTrigger:根据间隔重复执行函数
from apscheduler.triggers.interval import IntervalTrigger from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.schedulers.background import BackgroundScheduler def job01(): print("工作") # 1. 创建调度器 # scheduler = BackgroundScheduler() # 后台调度器对象 scheduler = BlockingScheduler() # 阻塞调度器对象 # 2. 添加任务 # xx调度器对象.add_job(任务函数, 触发器对象) # 间隔2秒执行一次 scheduler.add_job(job01, IntervalTrigger(seconds=2)) # 3. 开启调度 # xx调度器对象.start() scheduler.start()
周期 CronTrigger:根据周期重复执行函数
from apscheduler.triggers.cron import CronTrigger from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.schedulers.background import BackgroundScheduler def job01(): print("工作") # 1. 创建调度器 # scheduler = BackgroundScheduler() # 后台调度器对象 scheduler = BlockingScheduler() # 阻塞调度器对象 # 2. 添加任务 # xx调度器对象.add_job(任务函数, 触发器对象) # 每周五7点30分执行一次 scheduler.add_job(job01, CronTrigger(week=4, hour=7, minute=30)) # 3. 开启调度 # xx调度器对象.start() scheduler.start()
时间 DateTrigger:根据时间执行一次函数
from datetime import datetime, timedelta from apscheduler.triggers.date import DateTrigger from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.schedulers.background import BackgroundScheduler def job01(): print("工作") # 1. 创建调度器 # scheduler = BackgroundScheduler() # 后台调度器对象 scheduler = BlockingScheduler() # 阻塞调度器对象 # 2. 添加任务 # xx调度器对象.add_job(任务函数, 触发器对象) # 延迟3秒后执行一次 scheduler.add_job(job01, DateTrigger(datetime.now() + timedelta(seconds=3))) # 3. 开启调度 # xx调度器对象.start() scheduler.start()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!