APScheduler 是 Python 的任务调度与作业队列系统,支持同步和异步执行。
用途:在 Python 应用中按 cron、固定间隔、指定日期或日历间隔触发任务,并管理调度生命周期。
主要能力:提供 Scheduler 与 AsyncScheduler;触发器包括 IntervalTrigger、CronTrigger(含 from_crontab)、DateTrigger、CalendarIntervalTrigger;支持内存数据存储,也可通过 SQLAlchemyDataStore 持久化到 SQLite、PostgreSQL,事件代理可用 AsyncpgEventBroker、RedisEventBroker;分布式场景可用 SchedulerRole.scheduler 与 SchedulerRole.worker 拆分调度与执行节点。作业管理支持添加、暂停、恢复、移除、查询下一次运行时间,以及 get_job_result 获取结果并设置 result_expiration_time;可订阅 JobAdded、JobReleased 事件。配置方面有 TaskDefaults 设置执行器、最大并发与 misfire_grace_time,也可按任务或调度覆盖,冲突策略如 CoalescePolicy.latest。
使用方式:安装命令为 uv add apscheduler,按后端可选 uv add "apscheduler[postgresql]"、"apscheduler[sqlite]"、"apscheduler[redis]" 等。基础用法是创建 Scheduler,用 add_schedule 注册任务与触发器,再 run_until_stopped;异步场景可在 FastAPI lifespan 中用 AsyncScheduler 并 start_in_background。
适用场景:定时报表、数据同步、API 轮询、清理任务、需要持久化或分布式执行的调度。
限制:资料未提供性能指标、收费信息与平台支持范围;持久化、分布式和事件代理依赖额外的数据库或消息中间件。