You've already forked FrameTour-RenderWorker
mypy
This commit is contained in:
@@ -15,9 +15,10 @@ from util import ffmpeg, oss
|
||||
from util.ffmpeg import fade_out_audio
|
||||
from telemetry import get_tracer
|
||||
|
||||
logger = logging.getLogger('biz/ffmpeg')
|
||||
logger = logging.getLogger("biz/ffmpeg")
|
||||
_render_service = None
|
||||
|
||||
|
||||
def _get_render_service():
|
||||
"""获取渲染服务实例"""
|
||||
global _render_service
|
||||
@@ -31,19 +32,28 @@ def parse_ffmpeg_task(task_info, template_info):
|
||||
解析FFmpeg任务 - 保留用于向后兼容
|
||||
实际处理逻辑已迁移到 services.TaskService.create_render_task
|
||||
"""
|
||||
logger.warning("parse_ffmpeg_task is deprecated, use TaskService.create_render_task instead")
|
||||
|
||||
logger.warning(
|
||||
"parse_ffmpeg_task is deprecated, use TaskService.create_render_task instead"
|
||||
)
|
||||
|
||||
# 使用新的任务服务创建任务
|
||||
from services import DefaultTaskService, DefaultRenderService, DefaultTemplateService
|
||||
from services import (
|
||||
DefaultTaskService,
|
||||
DefaultRenderService,
|
||||
DefaultTemplateService,
|
||||
)
|
||||
|
||||
render_service = DefaultRenderService()
|
||||
template_service = DefaultTemplateService()
|
||||
task_service = DefaultTaskService(render_service, template_service)
|
||||
|
||||
|
||||
# 创建新的渲染任务
|
||||
render_task = task_service.create_render_task(task_info, template_info)
|
||||
|
||||
|
||||
# 为了向后兼容,创建一个FfmpegTask包装器
|
||||
ffmpeg_task = FfmpegTask(render_task.input_files, output_file=render_task.output_file)
|
||||
ffmpeg_task = FfmpegTask(
|
||||
render_task.input_files, output_file=render_task.output_file
|
||||
)
|
||||
ffmpeg_task.resolution = render_task.resolution
|
||||
ffmpeg_task.frame_rate = render_task.frame_rate
|
||||
ffmpeg_task.annexb = render_task.annexb
|
||||
@@ -54,7 +64,7 @@ def parse_ffmpeg_task(task_info, template_info):
|
||||
ffmpeg_task.luts = render_task.luts
|
||||
ffmpeg_task.audios = render_task.audios
|
||||
ffmpeg_task.overlays = render_task.overlays
|
||||
|
||||
|
||||
return ffmpeg_task
|
||||
|
||||
|
||||
@@ -64,14 +74,20 @@ def parse_video(source, task_params, template_info):
|
||||
logger.warning("parse_video is deprecated, functionality moved to TaskService")
|
||||
return source, {}
|
||||
|
||||
|
||||
def check_placeholder_exist(placeholder_id, task_params):
|
||||
"""已迁移到 TaskService._check_placeholder_exist_with_count"""
|
||||
logger.warning("check_placeholder_exist is deprecated, functionality moved to TaskService")
|
||||
"""已迁移到 TaskService._check_placeholder_exist_with_count"""
|
||||
logger.warning(
|
||||
"check_placeholder_exist is deprecated, functionality moved to TaskService"
|
||||
)
|
||||
return placeholder_id in task_params
|
||||
|
||||
|
||||
def check_placeholder_exist_with_count(placeholder_id, task_params, required_count=1):
|
||||
"""已迁移到 TaskService._check_placeholder_exist_with_count"""
|
||||
logger.warning("check_placeholder_exist_with_count is deprecated, functionality moved to TaskService")
|
||||
logger.warning(
|
||||
"check_placeholder_exist_with_count is deprecated, functionality moved to TaskService"
|
||||
)
|
||||
if placeholder_id in task_params:
|
||||
new_sources = task_params.get(placeholder_id, [])
|
||||
if isinstance(new_sources, list):
|
||||
@@ -88,14 +104,14 @@ def start_ffmpeg_task(ffmpeg_task):
|
||||
# 使用新的渲染服务
|
||||
render_service = _get_render_service()
|
||||
result = render_service.render(ffmpeg_task)
|
||||
|
||||
|
||||
if result:
|
||||
span.set_status(Status(StatusCode.OK))
|
||||
else:
|
||||
span.set_status(Status(StatusCode.ERROR))
|
||||
|
||||
|
||||
return result
|
||||
|
||||
|
||||
except Exception as e:
|
||||
span.set_status(Status(StatusCode.ERROR))
|
||||
logger.error(f"FFmpeg task failed: {e}", exc_info=True)
|
||||
@@ -104,7 +120,9 @@ def start_ffmpeg_task(ffmpeg_task):
|
||||
|
||||
def clear_task_tmp_file(ffmpeg_task):
|
||||
"""清理临时文件 - 已迁移到 TaskService._cleanup_temp_files"""
|
||||
logger.warning("clear_task_tmp_file is deprecated, functionality moved to TaskService")
|
||||
logger.warning(
|
||||
"clear_task_tmp_file is deprecated, functionality moved to TaskService"
|
||||
)
|
||||
try:
|
||||
template_dir = os.getenv("TEMPLATE_DIR", "")
|
||||
output_file = ffmpeg_task.get_output_file()
|
||||
@@ -124,5 +142,3 @@ def probe_video_info(ffmpeg_task):
|
||||
"""获取视频长度宽度和时长 - 使用新的渲染服务"""
|
||||
render_service = _get_render_service()
|
||||
return render_service.get_video_info(ffmpeg_task.get_output_file())
|
||||
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ logger = logging.getLogger(__name__)
|
||||
# 确保服务已注册
|
||||
register_default_services()
|
||||
|
||||
|
||||
def start_task(task_info):
|
||||
"""启动任务处理(保持向后兼容的接口)"""
|
||||
tracer = get_tracer(__name__)
|
||||
@@ -19,19 +20,19 @@ def start_task(task_info):
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user