feat: 渲染失败检测+任务超时机制 (#1219)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 39s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 46s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 50s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m25s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m40s
AI Code Review / AI Code Review (pull_request) Failing after 2m13s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m52s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m53s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 2m2s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 1081h8m47s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1081h9m28s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1081h9m29s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 1081h8m48s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1081h8m48s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1081h9m24s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1081h9m25s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1081h9m25s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1081h9m27s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1081h42m42s

- 新增 video_validation 模块:渲染后校验输出完整性
  - 文件存在性/大小检查
  - moov atom 检测(MP4容器完整性)
  - ffprobe 视频流验证
  - FFmpeg 退出码中文映射(OOM/段错误/滤镜错误等)
- render_adapter: 渲染后自动校验输出,不通过则不上传OSS
- compose_video: 添加 soft_time_limit=600s (10分钟)
  - 区分超时/FFmpeg错误/通用异常的失败处理
- render_edit_plan: 添加 soft_time_limit=600s
  - 超时不重试,直接标记失败
- generate_video: 添加 soft_time_limit=600s
- _startup: 孤儿任务清理扩展到 Job 表
- 21 个单元测试全绿
This commit is contained in:
xiaoxia
2026-08-02 14:17:11 +08:00
parent 380274e635
commit 4fca2e48fb
7 changed files with 770 additions and 14 deletions
+17
View File
@@ -531,6 +531,23 @@ class RenderAdapter:
)
result = render_svc.render()
# 4.5 渲染后校验输出完整性
from video_processing.video_validation import validate_video_output
validation = validate_video_output(result.output_path)
if not validation.valid:
logger.error(
"[render-adapter] 渲染输出校验失败: plan_id=%s job_id=%s error=%s",
plan_id,
job_id,
validation.error_message,
)
return RenderAdapterResult(
success=False,
error_message=f"渲染输出校验失败: {validation.error_message}",
error_detail=validation.error_message,
)
self._report_progress(progress_cb, 80.0, "上传渲染结果")
# 5. 上传结果