Библиотека Python для надёжных фоновых процессов и действий, переживающих перезапуски и сбои; единственная инфраструктурная зависимость — Postgres.
agronholm/apscheduler
Библиотека-планировщик задач и очередь задач для Python с триггерами cron, интервалов, календарных и разовых запусков, а также поддержкой постоянных хранилищ заданий.
- Звёзды
- 7,688
- Форки
- 823
- Открытые issues
- 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Синхронные и асинхронные API (asyncio, Trio)
- 05Ограничения параллельного выполнения и допустимого опоздания, а также джиттер для заданий
Сценарии использования
- Запуск периодических фоновых заданий в веб-приложении на Python
- Планирование регулярной синхронизации данных или очистки на нескольких серверах с общей базой данных
- Использование в качестве лёгкой очереди заданий, когда отдельная очередь задач не нужна
- Запуск задач asyncio или Trio из приложения ASGI или WSGI
Что важно знать
- Серия v4.0 является предварительным выпуском и может измениться несовместимым образом без возможности миграции, поэтому её не следует использовать в production.
Темы
Частые вопросы
- Что такое apscheduler?
- Библиотека-планировщик задач и очередь задач для Python с триггерами cron, интервалов, календарных и разовых запусков, а также поддержкой постоянных хранилищ заданий. APScheduler (Advanced Python Scheduler) — библиотека для запуска функций Python по расписанию или в виде заданий в очереди. Она подходит для небольших скриптов, работающих в одном процессе, а также может работать на нескольких узлах, где несколько планировщиков и обработчиков используют общее хранилище данных.
- apscheduler можно использовать бесплатно? Какая у него лицензия?
- apscheduler распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- apscheduler всё ещё поддерживается?
- Активно поддерживается. Последний коммит в apscheduler — 26 окт. 2026 г..
- Для чего можно использовать apscheduler?
- Запуск периодических фоновых заданий в веб-приложении на Python Планирование регулярной синхронизации данных или очистки на нескольких серверах с общей базой данных Использование в качестве лёгкой очереди заданий, когда отдельная очередь задач не нужна Запуск задач asyncio или Trio из приложения ASGI или WSGI
- Где скачать apscheduler?
- Исходный код и инструкции по установке — на GitHub: https://github.com/agronholm/apscheduler
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Распределённая платформа планирования задач с веб-консолью, поддержкой Cron и фиксированных интервалов, шардированных broadcast-задач, failover и повторных попыток.
Распределённая очередь задач для Python: выполняет фоновые задания и распределяет работу между воркерами через брокеры сообщений.
Библиотека Go для распределённых очередей задач на базе Redis с планированием, повторами, приоритетами и веб-интерфейсом.
Движок оркестрации фоновых задач, AI-агентов и долговечных рабочих процессов с SDK для Python, TypeScript, Go и Ruby и Postgres в качестве слоя надёжного хранения.
Распределённый фреймворк на Java для планирования задач: cron, по фиксированному интервалу, с задержкой и в стиле MapReduce на серверных и рабочих узлах.