"""Фоновые сервисы после готовности приложения (sync, OTA, LLM).""" from __future__ import annotations import atexit from flask import Flask def schedule_runtime_services(app: Flask) -> None: if app.config.get("TESTING"): return if app.config.get("SYNC_CLIENT_AUTOSTART", True): from app.services.startup_defer import default_startup_delay_sec from sync_client import schedule_sync_client_autostart, stop_sync_client sync_delay = default_startup_delay_sec( "WESP_STARTUP_SYNC_DELAY_SEC", arm_default=3.0, other_default=0.6 ) schedule_sync_client_autostart(app, delay_sec=sync_delay) atexit.register(stop_sync_client) from app.services.auto_update_runtime import ( register_update_checker_shutdown, schedule_update_checker, ) schedule_update_checker(app) register_update_checker_shutdown() if app.config.get("WESP_LLM_AUTOSTART"): from app.services.local_llm_autostart import ( schedule_llm_server_autostart, stop_llm_server_process, ) schedule_llm_server_autostart(app) atexit.register(stop_llm_server_process)