Repolode
agronholm

agronholm/apscheduler

Python 任务调度与任务队列库,支持 Cron、间隔、日历和一次性等多种触发方式。

Star
7,688
Fork
823
未关闭 Issue
82
最近提交
12天前

这是什么?

APScheduler(Advanced Python Scheduler)是一个用于按计划运行 Python 函数或以任务队列方式处理作业的库。它既可以在单进程的小型脚本中使用,也可以跨多个节点部署,让多个调度器和工作进程共享同一个数据存储。

它同时提供同步和异步两种版本,既适用于基于线程的应用,也适用于 asyncio 或 Trio 应用。调度计划和作业可以持久化到 PostgreSQL、MySQL、SQLite 或 MongoDB 中,因此在进程或节点重启后不会丢失,并能在多个实例之间共享。在需要多个调度器或工作进程协同时,可使用 PostgreSQL、Redis 或 MQTT 作为事件代理。

内置触发器支持 Cron 风格、固定间隔、日历式(每隔 X 年、月、周或天在同一时刻运行)和一次性执行。触发器可以组合,也可以自定义;作业还可以限制并发数量、允许的最大延迟启动时间,并添加随机抖动。

核心功能

  • 01支持 Cron、固定间隔、日历式和一次性触发器,并可自定义触发器
  • 02作业可持久化到 PostgreSQL、MySQL、SQLite 或 MongoDB
  • 03可通过 PostgreSQL、Redis 或 MQTT 事件代理在多个调度器和工作进程之间协同
  • 04同时提供同步以及 asyncio、Trio 异步接口
  • 05支持限制同一任务的并发数、最大延迟启动时间,并可添加随机抖动

适用场景

  • 在 Python Web 应用中运行周期性后台任务
  • 借助共享数据库,在多台服务器上调度定期的数据同步或清理任务
  • 在不需要独立任务队列时,将其用作轻量级作业队列
  • 在 ASGI 或 WSGI 应用中触发 asyncio 或 Trio 任务

使用前须知

  • v4.0 系列为预发布版本,可能会有不兼容的变更且没有迁移路径,不应用于生产环境。

标签

常见问题

apscheduler 是什么?
Python 任务调度与任务队列库,支持 Cron、间隔、日历和一次性等多种触发方式。 APScheduler(Advanced Python Scheduler)是一个用于按计划运行 Python 函数或以任务队列方式处理作业的库。它既可以在单进程的小型脚本中使用,也可以跨多个节点部署,让多个调度器和工作进程共享同一个数据存储。
apscheduler 可以免费使用吗?用的什么许可证?
apscheduler 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
apscheduler 还在维护吗?
活跃维护中。apscheduler 最近一次提交是在 2026年10月26日。
apscheduler 适合用来做什么?
在 Python Web 应用中运行周期性后台任务 借助共享数据库,在多台服务器上调度定期的数据同步或清理任务 在不需要独立任务队列时,将其用作轻量级作业队列 在 ASGI 或 WSGI 应用中触发 asyncio 或 Trio 任务
在哪里获取 apscheduler?
源代码和安装说明在 GitHub 上:https://github.com/agronholm/apscheduler

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目