通过配置路由不同的算法

This commit is contained in:
zqc
2026-02-27 15:20:53 +08:00
parent d64d058c88
commit ffaacc0624
3 changed files with 23 additions and 4 deletions

View File

@@ -0,0 +1,15 @@
from biz.checkpoint.checkpoint_biz import FrameProcessorWorker as CheckpointWorker
from biz.prison.trajectory02_biz import FrameProcessorWorker as TrajectoryWorker
from biz.prison.supervision_room_biz import FrameProcessorWorker as SupervisionWorker
# ... 其他导入
PROCESSOR_MAP = {
"checkpoint": CheckpointWorker,
"trajectory": TrajectoryWorker,
"supervision_room": SupervisionWorker,
}
def get_processor(processor_type: str):
if processor_type not in PROCESSOR_MAP:
raise ValueError(f"Unknown processor type: {processor_type}")
return PROCESSOR_MAP[processor_type]

View File

@@ -15,7 +15,11 @@ from dataclasses import dataclass
# from biz.checkpoint.checkpoint_biz import FrameProcessorWorker
# from biz.prison.prison_biz import FrameProcessorWorker
from biz.prison.trajectory02_biz import FrameProcessorWorker
# from biz.prison.trajectory02_biz import FrameProcessorWorker
# from biz.prison.supervision_room_biz import FrameProcessorWorker
from common.processor_factory import get_processor
from common.camera_config import CameraConfig, parse_cameras_from_json, parse_cameras_from_yaml
from common.contants import init_config
from utils.web_socket_sender import WebSocketSender
@@ -294,7 +298,7 @@ class HLSKadianService:
self.ws_queue = queue.Queue(maxsize=1000) # WebSocket队列
self.frame_processor_workers = []
self.biz_processor = FrameProcessorWorker(self.raw_queue, self.ws_queue, self.stop_event, self.cameras)
self.biz_processor = get_processor(self.algorithm)(self.raw_queue, self.ws_queue, self.stop_event, self.cameras)
self.ws_sender = WebSocketSender(self.ws_queue, self.stop_event, self.ws_host, self.ws_port)
def start(self):

View File

@@ -11,7 +11,7 @@ import argparse
import threading
import queue
from biz.checkpoint.checkpoint_biz import FrameProcessorWorker
from common.processor_factory import get_processor
from common.camera_config import CameraConfig, parse_cameras_from_json, parse_cameras_from_yaml
from common.contants import init_config
from test_cam import get_camera_preview_url
@@ -178,7 +178,7 @@ class RTSPService:
self.ws_queue = queue.Queue(maxsize=1000)
self.capture_workers = []
self.processor = FrameProcessorWorker(self.raw_queue, self.ws_queue, self.stop_event, self.cameras)
self.biz_processor = get_processor(self.algorithm)(self.raw_queue, self.ws_queue, self.stop_event, self.cameras)
self.ws_sender = WebSocketSender(self.ws_queue, self.stop_event, self.ws_host, self.ws_port)
def start(self):