fix(scheduler): ensure scheduler starts after setup/config update
Add ensure_started() to SchedulerService as idempotent entry point. Start scheduler in auth setup run_initialization() after NFO scan. Sync anime_directory and start scheduler in config update endpoint. Add unit and endpoint tests for ensure_started() behavior.
This commit is contained in:
@@ -153,6 +153,22 @@ class SchedulerService:
|
||||
self._is_running = False
|
||||
logger.info("SchedulerService stopped successfully")
|
||||
|
||||
async def ensure_started(self) -> None:
|
||||
"""Ensure the scheduler is running (idempotent).
|
||||
|
||||
If already running, returns immediately. Otherwise, starts the scheduler.
|
||||
This method is safe to call multiple times and from multiple callers.
|
||||
|
||||
Raises:
|
||||
SchedulerServiceError: If startup fails (except for already running).
|
||||
"""
|
||||
if self._is_running:
|
||||
logger.debug("Scheduler ensure_started called but already running")
|
||||
return
|
||||
|
||||
logger.info("Scheduler ensure_started: starting scheduler")
|
||||
await self.start()
|
||||
|
||||
async def trigger_rescan(self) -> bool:
|
||||
"""Manually trigger a library rescan.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user