Refactor: PHASE 6: Decoupling & Integration

This commit is contained in:
ziesorx 2025-09-12 15:57:51 +07:00
parent 6c7c4c5d9c
commit accefde8a1
8 changed files with 2344 additions and 86 deletions

View file

@ -14,17 +14,18 @@ from typing import Dict, Any, Optional, Callable, List, Set
from contextlib import asynccontextmanager
from fastapi import WebSocket
from websockets.exceptions import ConnectionClosedError, WebSocketDisconnect
from fastapi.websockets import WebSocketDisconnect
from websockets.exceptions import ConnectionClosedError
from ..core.config import config, subscription_to_camera, latest_frames
from ..core.constants import HEARTBEAT_INTERVAL
from ..core.exceptions import WebSocketError, StreamError
from ..streams.stream_manager import StreamManager
from ..streams.camera_monitor import CameraConnectionMonitor
from ..streams.camera_monitor import CameraMonitor
from ..detection.detection_result import DetectionResult
from ..models.model_manager import ModelManager
from ..pipeline.pipeline_executor import PipelineExecutor
from ..storage.session_cache import SessionCache
from ..storage.session_cache import SessionCacheManager
from ..storage.redis_client import RedisClientManager
from ..utils.system_monitor import get_system_metrics
@ -55,7 +56,7 @@ class WebSocketHandler:
stream_manager: StreamManager,
model_manager: ModelManager,
pipeline_executor: PipelineExecutor,
session_cache: SessionCache,
session_cache: SessionCacheManager,
redis_client: Optional[RedisClientManager] = None
):
"""
@ -603,7 +604,7 @@ async def handle_websocket_connection(
stream_manager: StreamManager,
model_manager: ModelManager,
pipeline_executor: PipelineExecutor,
session_cache: SessionCache,
session_cache: SessionCacheManager,
redis_client: Optional[RedisClientManager] = None
) -> None:
"""