Иногда нужно просто:
- запустить функцию каждые 5 минут
- или каждый день в 09:00
- или по cron
…и всё.
Но Celery для этого — реально оверкилл: брокер, воркеры, Redis/RabbitMQ, отдельная инфраструктура.
FastScheduler решает ровно эту задачу:
✅ *in-process* планировщик задач (никаких Redis / брокеров)
✅ decorator-first API — красиво и быстро
✅ async поддержка из коробки
✅ персистентность (состояние сохраняется, переживает рестарты)
✅ опционально — FastAPI dashboard для просмотра задач
Пример того, как выглядит API:
@scheduler.every(5).minutes
def sync_users():
...
@scheduler.daily.at("09:00")
async def morning_report():
Философия простая:
если тебе не нужна распределённость - не бери Celery, попробуй FastScheduler.
Установка:
pip install fastscheduler[all]
📌 GitHub: https://github.com/MichielMe/fastscheduler