APScheduler 是面向 Python 应用的任务调度与作业队列系统,支持同步和异步执行,提供 cron 式、间隔式、一次性(DateTrigger)和日历间隔等多种调度机制。
主要能力:可调度普通函数、带参数任务和 async 协程;支持内存调度器(开发用,重启后作业丢失)与基于 SQLAlchemyDataStore 的持久化调度器(生产用,作业可跨重启保留);通过 SchedulerRole 与事件代理(如 AsyncpgEventBroker、RedisEventBroker)可搭建分布式调度器与 worker 节点。触发器包括 IntervalTrigger、CronTrigger(含 from_crontab)、DateTrigger、CalendarIntervalTrigger。
使用方式:安装核心包 pip install apscheduler;按需安装后端,如 pip install "apscheduler[postgresql]"、"apscheduler[sqlite]"、"apscheduler[redis]"、"apscheduler[mongodb]"、"apscheduler[mqtt]"。基本用法为创建 Scheduler 或 AsyncScheduler,用 add_schedule 添加任务并指定触发器,再调用 run_until_stopped 或 start_in_background。可管理调度(暂停、恢复、删除、查询)、获取作业结果、订阅 JobAdded/JobReleased 等事件,并通过 TaskDefaults 或 configure_task 配置执行器、最大并发与 misfire_grace_time。
适用场景:定时报表、数据清洗与同步、周期性调用外部 API、后台清理任务,以及需要持久化或分布式执行的 Python 服务。
限制:资料未提供具体版本兼容范围、性能指标与收费信息;持久化与分布式能力依赖相应数据库或消息中间件,需自行安装对应依赖。