feat: APScheduler integration for maintenance flow auto-session creation
- Add backend/app/core/scheduler.py with AsyncIOScheduler, CronTrigger-based job registration, and _fire_maintenance_schedule to create batch sessions - Wire scheduler.start()/load_all_schedules()/shutdown() into main.py lifespan - Call register_schedule() in create_schedule endpoint after commit - Call register_schedule()/unregister_schedule() in update_schedule based on is_active - Add TreeShare to models/__init__.py so all SQLAlchemy mapper relationships resolve before ORM queries in the scheduler context Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -76,6 +76,10 @@ async def create_schedule(
|
||||
db.add(schedule)
|
||||
await db.commit()
|
||||
await db.refresh(schedule)
|
||||
|
||||
from app.core.scheduler import register_schedule
|
||||
register_schedule(schedule)
|
||||
|
||||
return schedule
|
||||
|
||||
|
||||
@@ -135,4 +139,11 @@ async def update_schedule(
|
||||
|
||||
await db.commit()
|
||||
await db.refresh(schedule)
|
||||
|
||||
from app.core.scheduler import register_schedule, unregister_schedule
|
||||
if schedule.is_active:
|
||||
register_schedule(schedule)
|
||||
else:
|
||||
unregister_schedule(str(schedule.id))
|
||||
|
||||
return schedule
|
||||
|
||||
Reference in New Issue
Block a user