# fastapi-scheduler **Repository Path**: fastapi-practices/fastapi-scheduler ## Basic Information - **Project Name**: fastapi-scheduler - **Description**: FastAPI + APScheduler 实现任务动态管理 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-01-09 - **Last Updated**: 2026-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastAPI Scheduler 基于 fba-slim 的 FastAPI 任务调度服务,通过 scheduler 插件集成 APScheduler `4.0.0a6` ## 特性 - FastAPI 后端基础架构 - APScheduler 由 `backend/plugin/scheduler` 插件随应用 lifespan 自动启停 - PostgreSQL / MySQL 与 Redis 支持 - uv 管理依赖 - 保留 fba CLI、插件、迁移、日志能力 ## 快速开始 ```bash uv sync cp backend/.env.example backend/.env uv run fba init --auto uv run fba run 127.0.0.1 8000 ``` 访问地址: - Swagger:`http://127.0.0.1:8000/docs` - API 前缀:`http://127.0.0.1:8000/api/v1` ## 关键配置 在 `backend/.env` 中配置数据库、Redis 和 Token: ```env DATABASE_TYPE='postgresql' DATABASE_HOST='127.0.0.1' DATABASE_PORT=5432 DATABASE_USER='postgres' DATABASE_PASSWORD='123456' REDIS_HOST='127.0.0.1' REDIS_PORT=6379 REDIS_PASSWORD='' REDIS_DATABASE=0 TOKEN_SECRET_KEY='replace-with-your-secret' ``` ## 调度器 调度器由 `backend/plugin/scheduler` 插件提供 ```python from apscheduler.triggers.interval import IntervalTrigger from backend.plugin.scheduler.service.scheduler_service import get_scheduler async def demo_job() -> None: print('scheduler job executed') async def register_jobs() -> None: scheduler = get_scheduler() await scheduler.add_schedule(demo_job, IntervalTrigger(seconds=30), id='demo_job') ``` 当前默认使用内存调度器,不默认创建任务表,也不默认持久化任务 ## 常用命令 ```bash uv run fba run 127.0.0.1 8000 uv run fba format uv run fba alembic revision -m "message" uv run fba alembic upgrade head uv export --format requirements-txt --no-hashes -o requirements.txt ``` ## Docker ```bash docker build -f Dockerfile -t fastapi_scheduler . docker compose up -d ``` ## 许可证 MIT