fix: 修复视频分析并发处理和数据库存储问题

🔧 修复视频分析模块的关键并发和存储问题

**主要修复:**
1. **并发竞争条件修复**
   - 解决相同视频hash同时处理导致重复分析的问题
   - 重构并发控制机制,使用per-video独立锁和事件
   - 消除30秒超时后多个请求同时执行的竞争条件

2. **数据库存储优化**
   - 移除Videos表path字段的复杂唯一性检查逻辑
   - 简化为基于hash的纯唯一标识存储
   - 修复path字段重复导致的IntegrityError

3. **代码简化和清理**
   - 删除重编码视频检测功能(复杂且用处有限)
   - 移除不必要的特征匹配和计数更新逻辑
   - 简化存储路径生成,统一使用hash前缀

Fixes: 视频并发处理竞争条件、数据库存储冲突、聊天循环变量错误
This commit is contained in:
雅诺狐
2025-08-22 23:55:54 +08:00
parent 4ee894913e
commit 1f07104181
10 changed files with 279 additions and 623 deletions

8
uv.lock generated
View File

@@ -1978,6 +1978,12 @@ wheels = [
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595, upload-time = "2024-12-06T11:20:54.538Z" },
]
[[package]]
name = "lunar-python"
version = "1.4.4"
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/fb/c1/93a993095234d51720e0179204c4b153adc11156ba1baa6b69213f4372d0/lunar_python-1.4.4.tar.gz", hash = "sha256:e14a8cc74a12d5628eaa50d33ec4feceeb44a2c44c74890b895a4e4f5ec17457", size = 106007, upload-time = "2025-04-29T08:14:13.847Z" }
[[package]]
name = "lxml"
version = "6.0.0"
@@ -2079,6 +2085,7 @@ dependencies = [
{ name = "json5" },
{ name = "jsonlines" },
{ name = "langfuse" },
{ name = "lunar-python" },
{ name = "lxml" },
{ name = "maim-message" },
{ name = "matplotlib" },
@@ -2157,6 +2164,7 @@ requires-dist = [
{ name = "json5", specifier = ">=0.12.1" },
{ name = "jsonlines", specifier = ">=4.0.0" },
{ name = "langfuse", specifier = "==2.46.2" },
{ name = "lunar-python", specifier = ">=1.4.4" },
{ name = "lxml", specifier = ">=6.0.0" },
{ name = "maim-message", specifier = ">=0.3.8" },
{ name = "matplotlib", specifier = ">=3.10.3" },