You've already forked FrameTour-RenderWorker
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
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
|