.. image:: https://github.com/agronholm/apscheduler/actions/workflows/test.yml/badge.svg :target: https://github.com/agronholm/apscheduler/actions/workflows/test.yml :alt: 构建状态 .. image:: https://coveralls.io/repos/github/agronholm/apscheduler/badge.svg?branch=master :target: https://coveralls.io/github/agronholm/apscheduler?branch=master :alt: 代码覆盖率 .. image:: https://readthedocs.org/projects/apscheduler/badge/?version=latest :target: https://apscheduler.readthedocs.io/en/master/?badge=latest :alt: 文档
.. warning:: v4.0系列作为预发布版本提供,可能会以不向后兼容的方式进行更改,且没有任何迁移路径,因此请勿在生产环境中使用此版本!
高级Python调度器(APScheduler)是一个用于Python的任务调度器和任务队列系统。如果您不需要任务调度功能,它也可以单独用作作业排队系统。它可以进行上下扩展,适用于从简单的单进程用例到跨多个节点的大型部署。可以部署多个调度器和工作器,使用共享数据存储来提供高可用性和水平扩展。
APScheduler提供同步和异步两种版本,适用于传统的基于线程的应用程序和异步(asyncio或Trio_)应用程序。文档和示例提供了与WSGI_或ASGI_兼容的Web应用程序集成的指导。
支持持久化存储调度和作业。这意味着它们可以在多个调度器/工作器实例之间共享,并且在进程和节点重启后仍然存在。
内置的持久化数据存储后端包括:
- PostgreSQL
- MySQL及其衍生品
- SQLite
- MongoDB
内置的事件代理(在多个调度器和/或工作器的场景中需要):
- PostgreSQL
- Redis
- MQTT
内置的调度机制(触发器)包括:
- Cron风格调度
- 基于间隔的调度(按固定间隔运行任务)
- 基于日历的调度(按X年/月/周/天的间隔运行任务,总是在一天中的同一时间)
- 一次性调度(在特定日期/时间运行一次任务)
不同的调度机制甚至可以通过所谓的组合触发器组合使用(详见文档_)。
您还可以通过构建自己的触发器类来实现自定义的调度逻辑。这些自定义触发器将与内置触发器得到同等对待。
其他值得注意的特性包括:
- 可以限制给定任务(函数)的最大同时作业数
- 可以限制作业允许延迟启动的时间
- 抖动(可调整的随机延迟,添加到每个计划作业的运行时间)
.. _Trio: https://pypi.org/project/trio/ .. _WSGI: https://wsgi.readthedocs.io/en/latest/what.html .. _ASGI: https://asgi.readthedocs.io/en/latest/index.html .. _文档: https://apscheduler.readthedocs.io/en/master/
文档
文档可以在这里 <https://apscheduler.readthedocs.io/en/master/?badge=latest>
_找到。
源代码
源代码可以在Github <https://github.com/agronholm/apscheduler>
_上浏览。
报告错误
GitHub提供了一个错误跟踪器 <https://github.com/agronholm/apscheduler/issues>
_。
获取帮助
如果您遇到问题或有其他疑问,您可以:
- 在Gitter上的
apscheduler <https://gitter.im/apscheduler/Lobby>
_房间中提问 - 在
GitHub讨论区
_发布问题,或 - 在StackOverflow_上发布问题并添加
apscheduler
标签
.. _GitHub讨论区: https://github.com/agronholm/apscheduler/discussions/categories/q-a .. _StackOverflow: http://stackoverflow.com/questions/tagged/apscheduler