fix: MediaKit 视频理解轮询限时30s + 修复URL映射覆盖 #1225

Merged
xiaoxia merged 1 commits from fix/mediakit-timeout-issue1209 into develop 2026-08-03 13:05:48 +08:00
Owner

问题

staging 配置 MEDIAKIT_API_KEY 后,AI推荐接口触发 MediaKit 视频理解,但耗时超过 nginx 60s 网关限制导致 504。

修复

  1. 轮询限时analyze_videos() 参数从默认 (3s×60=180s) 改为 (2s×15=30s),预留 30s 给 LLM 调用
  2. URL 映射修复url_to_asset_id dict 改为并行列表 valid_asset_ids,消除重复 URL 覆盖风险

降级行为

  • MediaKit 30s 内未完成 → 返回空 → 降级到无分析模式
  • 整个 try/except 保证任何异常都不影响主流程
## 问题 staging 配置 MEDIAKIT_API_KEY 后,AI推荐接口触发 MediaKit 视频理解,但耗时超过 nginx 60s 网关限制导致 504。 ## 修复 1. **轮询限时**:`analyze_videos()` 参数从默认 `(3s×60=180s)` 改为 `(2s×15=30s)`,预留 30s 给 LLM 调用 2. **URL 映射修复**:`url_to_asset_id` dict 改为并行列表 `valid_asset_ids`,消除重复 URL 覆盖风险 ## 降级行为 - MediaKit 30s 内未完成 → 返回空 → 降级到无分析模式 - 整个 try/except 保证任何异常都不影响主流程
xiaoxia added 1 commit 2026-08-03 12:40:55 +08:00
fix: MediaKit 视频理解轮询限时至30s,修复 nginx 504 超时
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m22s
AI Code Review / AI Code Review (pull_request) Successful in 1m40s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m38s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 22s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 28s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 35s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m51s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m52s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m44s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m15s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 6m54s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 6s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 41s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 47s
8ea16aae74
- analyze_videos() 轮询参数从默认(3s*60=180s)改为(2s*15=30s)
- 预留30s给 LLM 调用,总耗时控制在 nginx 60s 限制内
- 超时自动降级到无分析模式,不影响主流程
- 修复 URL→asset_id 映射改用并行列表,消除重复 URL 覆盖风险

🚀 预览环境已部署

项目 详情
PR号 #1225
预览链接 https://pr-1225.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1225 | | 预览链接 | [https://pr-1225.preview.xiaoxiajianji.com](https://pr-1225.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:0 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

良好实践

  1. 修复数据映射逻辑缺陷:将 url_to_asset_id 字典映射改为 valid_asset_ids 列表索引映射,有效解决了当多个素材指向相同下载 URL 时,字典覆盖导致的数据错乱问题。
  2. 增加超时控制:显式配置 poll_intervalmax_poll_attempts 以适配 API 网关超时,增强了接口的稳定性。
  3. 边界条件保护:在结果映射循环中增加了 i < len(valid_asset_ids) 检查,防止了因返回结果数量异常导致的索引越界风险。

🤖 由 AI 代码审查机器人自动生成 | 2026-08-03 04:42:35 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **修复数据映射逻辑缺陷**:将 `url_to_asset_id` 字典映射改为 `valid_asset_ids` 列表索引映射,有效解决了当多个素材指向相同下载 URL 时,字典覆盖导致的数据错乱问题。 2. **增加超时控制**:显式配置 `poll_interval` 和 `max_poll_attempts` 以适配 API 网关超时,增强了接口的稳定性。 3. **边界条件保护**:在结果映射循环中增加了 `i < len(valid_asset_ids)` 检查,防止了因返回结果数量异常导致的索引越界风险。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-03 04:42:35 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit 1b0c2a7889 into develop 2026-08-03 13:05:48 +08:00
xiaoxia deleted branch fix/mediakit-timeout-issue1209 2026-08-03 13:05:48 +08:00

🗑️ 预览环境已清理

PR #1225 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1225 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.