调度器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()

触发器类型

相关推荐
财经资讯数据_灵砚智能几秒前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月8日
大数据·人工智能·python·信息可视化·自然语言处理
Jetev1 分钟前
MongoDB GridFS的默认MD5计算在集群中消耗CPU怎么办
jvm·数据库·python
Jetev2 分钟前
CSS如何实现复杂圣杯布局_结合flex布局与flex-basis轻松实现
jvm·数据库·python
2401_867623986 分钟前
HTML5中SVG解析器原理及手动构建矢量字符串
jvm·数据库·python
老纪8 分钟前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python
weixin_459753948 分钟前
Vue.js响应式shallowReadonly实现对象属性的一层状态保护
jvm·数据库·python
m0_470857648 分钟前
uni-app怎么实现拖拽调整顺序 uni-app可拖动格子布局实现【技巧】
jvm·数据库·python
dFObBIMmai10 分钟前
MySQL如何利用存储过程封装权限_通过DEFINER与INVOKER模式控制
jvm·数据库·python
m0_7485548111 分钟前
如何用 stopPropagation 阻止事件冒泡防止触发父级回调
jvm·数据库·python
2301_8125396711 分钟前
SQL如何基于窗口函数实现复杂分层 DENSE_RANK应用
jvm·数据库·python