调度器APScheduler定时执行任务

APScheduler(Advanced Python Scheduler)是一个Python库,用于调度任务,使其在预定的时间间隔或特定时间点执行。它支持多种调度方式,包括定时(interval)、日期(date)和Cron风格的调度(cron)。

APScheduler的主要组件

Schedulers(调度器):

BlockingScheduler:最简单的调度器,会阻塞当前线程,适用于单独的调度任务。

BackgroundScheduler:在后台运行,不阻塞当前线程,适用于需要在其他程序中运行的调度任务。

AsyncIOScheduler、GeventScheduler、TwistedScheduler:用于与特定的异步框架集成。

Jobs(任务):

表示要在某个时间执行的任务,可以是函数或方法。

Triggers(触发器):

决定任务何时执行。有三种主要触发器类型:

date:在特定时间执行一次。

interval:以固定的时间间隔重复执行。

cron:基于Cron表达式,在特定的时间点执行。

实践

python 复制代码
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.interval import IntervalTrigger

scheduler = BackgroundScheduler(timezone=pytz.timezone("Asia/Shanghai"))
# 解决错误: raise TypeError('Only timezones from the pytz library are supported' )ypeError: Only timezones from the pytz library are supported
# 运行任务
scheduler.add_job(task1, 'cron', hour='8' , minute='30') # 每天发送一次
scheduler.add_job(task2, 'cron', hour='8', minute='30') # 每天发送一次

try:
    scheduler.start()
    normal_log.logger.info('调度器已启动...')

    # 使脚本持续运行
    while True:
        time.sleep(2)
except (KeyboardInterrupt, SystemExit):
    scheduler.shutdown()

触发器类型

相关推荐
XIE39240 分钟前
Browser-use使用教程
python
酷爱码2 小时前
如何通过python连接hive,并对里面的表进行增删改查操作
开发语言·hive·python
蹦蹦跳跳真可爱5892 小时前
Python----深度学习(基于深度学习Pytroch簇分类,圆环分类,月牙分类)
人工智能·pytorch·python·深度学习·分类
MinggeQingchun5 小时前
Python - 爬虫-网页解析数据-库lxml(支持XPath)
爬虫·python·xpath·lxml
Python自动化办公社区6 小时前
Python 3.14:探索新版本的魅力与革新
开发语言·python
weixin_贾7 小时前
最新AI-Python机器学习与深度学习技术在植被参数反演中的核心技术应用
python·机器学习·植被参数·遥感反演
张槊哲7 小时前
函数的定义与使用(python)
开发语言·python
船长@Quant7 小时前
文档构建:Sphinx全面使用指南 — 实战篇
python·markdown·sphinx·文档构建
偶尔微微一笑8 小时前
AI网络渗透kali应用(gptshell)
linux·人工智能·python·自然语言处理·编辑器
船长@Quant9 小时前
文档构建:Sphinx全面使用指南 — 基础篇
python·markdown·sphinx·文档构建