import json import logging from opentelemetry.trace import Status, StatusCode # 使用新的服务容器架构 from services.service_container import get_task_service, register_default_services from telemetry import get_tracer logger = logging.getLogger(__name__) # 确保服务已注册 register_default_services() def start_task(task_info): """启动任务处理(保持向后兼容的接口)""" tracer = get_tracer(__name__) with tracer.start_as_current_span("start_task_legacy") as span: try: # 使用服务容器获取任务服务 task_service = get_task_service() # 使用新的任务服务处理 result = task_service.process_task(task_info) if result: span.set_status(Status(StatusCode.OK)) logger.info("Task completed successfully: %s", task_info.get("id")) else: span.set_status(Status(StatusCode.ERROR)) logger.error("Task failed: %s", task_info.get("id")) return None # 保持原有返回值格式 except Exception as e: span.set_status(Status(StatusCode.ERROR)) logger.error("Task processing failed: %s", e, exc_info=True) return None