refactor: 删除legacy渲染引擎,统一走unified引擎 #599 #608
Reference in New Issue
Block a user
Delete Branch "feature/remove-legacy-render-engine"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
概述
删除 legacy 渲染引擎,统一走 unified 引擎,完成架构清理。
Closes #599
变更内容
删除的文件 (2个)
apps/worker/video_processing/render_engine_resolver.py- 整个 Feature Flag 切换层(含 Redis feature flag、定时刷新、白名单/百分比灰度)tests/unit/test_generation_feature_flag.py- legacy 引擎相关的单测修改的文件 (6个)
核心渲染路径
apps/worker/worker_app/tasks/generation.py- 删除_resolve_render_engine()和_render_with_legacy_engine(),_render_video()直接走 UnifiedRenderServiceapps/worker/worker_app/tasks/edit_plan_generation.py- 删除_resolve_render_engine()和_render_with_legacy(),render_edit_plan()直接走 RenderAdapterapps/worker/worker_app/tasks/compose_video.py- 删除_compose_with_legacy_engine(),compose_video()直接走 unified 路径配置/API
apps/worker/worker_app/core/config.py- 移除render_engine环境变量配置apps/api/app/api/routes/feature_flags.py- 移除render_engine从 Feature Flag 允许列表测试
tests/unit/test_feature_flag.py- 移除TestRenderEngineResolver测试类验收检查
render_engine_resolver.py整个文件已删除generation.py中不再有 legacy 引擎分支edit_plan_generation.py中不再有 legacy 引擎分支compose_video.py中不再有 legacy 引擎分支合并方式
Squash merge
🚀 预览环境已部署
0080e7f6catob1c341d488CI 基础设施已修复(#619 + #621 已合入 develop),PG 容器启动问题已解决。
当前 PR 的 CI 是修复前跑的,Unit Tests / Validate 失败属于旧 CI 的 PG 问题。请 rebase 到最新 develop 重跑 CI 即可。
b975924918to039a1d2471CI全绿,自动审批通过。
CI全绿,自动审批通过。
📊 审查概览
❌ 需修改的问题(严重)
[apps/worker/worker_app/tasks/edit_plan_generation.py: 头部导入区] 潜在的运行时错误
import tempfile和from video_processing.oss_helpers import download_asset, upload_to_oss。虽然删除了_render_with_legacy函数,但剩余的_render_with_unified函数或render_edit_plan任务主体可能仍依赖这些导入(例如创建临时目录或上传文件)。由于 diff 被截断,无法确认剩余代码是否完全不再使用这些模块,贸然删除会导致NameError。edit_plan_generation.py中是否仍有tempfile、download_asset或upload_to_oss的调用。如果_render_with_unified或任务主流程中使用了这些功能,必须保留导入。[apps/worker/worker_app/core/config.py: 22] 配置项删除风险
WorkerSettings中的render_engine: str = "legacy"配置项。如果项目中其他未在此 PR 中展示的代码(如其他工具脚本、测试用例或依赖该配置的初始化逻辑)通过getattr(settings, "render_engine", ...)或直接访问settings.render_engine获取配置,将会抛出AttributeError。grep -r "render_engine"),确保没有其他代码路径依赖此配置项,或者保留该配置项但标记为 deprecated,待后续完全清除无引用后再删除。💡 改进建议(一般)
[apps/api/app/api/routes/feature_flags.py: 35] 功能开关白名单清空风险
ALLOWED_FLAGS被修改为空集合set()。如果该路由用于管理多个 feature flag(不仅仅是render_engine),此修改将导致所有其他 flag 的管理接口被拒绝(假设接口逻辑包含if flag not in ALLOWED_FLAGS)。请确认该路由是否仅服务于render_engine,如果是,建议注释说明“暂无允许管理的 Flag”;如果不是,应恢复其他 Flag 的白名单。[整体架构] 缺失回滚机制
legacy和unified引擎之间切换的能力,强制使用unified引擎。这虽然简化了代码,但也移除了生产环境遇到紧急问题时的快速回滚(切回旧引擎)能力。unified引擎已在预发环境或通过灰度充分验证,或者保留一个简单的环境变量开关(如FORCE_USE_LEGACY=True)作为最后的紧急熔断手段,而不是完全硬编码。✅ 良好实践
render_engine_resolver.py及相关逻辑,避免了代码库中遗留死代码,降低了维护负担。feature_flags.py中使用了set[str]类型标注,提高了代码可读性和 IDE 支持。test_feature_flag.py,test_generation_*.py),表明注重测试同步更新。🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 09:42:58 | 模型:
🗑️ 预览环境已清理
PR #608 已关闭或合并,对应的预览环境已被清理。