主要更新: - 修复了所有主要的代码逻辑错误 - 实现了完整的任务清理系统 - 添加了系统设置页面的任务清理管理功能 - 修复了API调用认证问题 - 优化了密码加密和验证机制 - 统一了错误处理模式 - 添加了详细的文档和测试工具 新增功能: - 任务清理管理界面 - 任务归档和清理日志 - API监控和诊断工具 - 完整的测试套件 技术改进: - 修复了Repository方法调用错误 - 统一了模型方法调用 - 改进了类型安全性 - 优化了代码结构和可维护性
3.4 KiB
3.4 KiB
视频生成失败诊断报告
问题分析
根据代码分析,视频生成失败可能的原因包括:
1. 图片传输问题
可能的问题点:
- 图片文件路径错误: 相对路径无法找到文件
- 图片文件不存在: 上传后文件丢失或路径错误
- 图片格式不支持: 外部API不支持特定格式
- 图片大小超限: 超过API限制
检查方法:
# 检查队列状态
curl -X GET http://localhost:8080/api/diagnostic/queue-status
# 检查特定任务的图片文件
curl -X GET http://localhost:8080/api/diagnostic/check-image/{taskId}
# 获取失败任务列表
curl -X GET http://localhost:8080/api/diagnostic/failed-tasks
2. 队列处理问题
可能的问题点:
- 任务状态更新失败: 数据库事务问题
- 外部API调用失败: 网络或认证问题
- 积分系统错误: 积分冻结/扣除失败
- 任务超时: 处理时间过长
检查方法:
# 检查队列状态统计
curl -X GET http://localhost:8080/api/diagnostic/queue-status
3. 外部API问题
可能的问题点:
- API认证失败: API密钥无效或过期
- API服务不可用: 外部服务宕机
- 请求格式错误: 参数格式不符合API要求
- 响应解析失败: API返回格式变化
诊断步骤
1. 检查队列状态
GET /api/diagnostic/queue-status
返回信息:
- 总任务数
- 待处理任务数
- 处理中任务数
- 已完成任务数
- 失败任务数
- 超时任务数
2. 检查图片文件
GET /api/diagnostic/check-image/{taskId}
返回信息:
- 图片文件路径
- 文件是否存在
- 文件大小
- 文件是否可读
- 检查的路径列表
3. 获取失败任务详情
GET /api/diagnostic/failed-tasks
返回信息:
- 失败任务列表
- 错误信息
- 失败时间
4. 重试失败任务
POST /api/diagnostic/retry-task/{taskId}
功能:
- 重置任务状态为待处理
- 清除错误信息
- 重新加入队列
常见问题解决方案
1. 图片文件不存在
问题: 图片文件不存在: uploads/taskId/first_frame.jpg
解决:
- 检查上传目录权限
- 确认文件路径正确
- 检查文件是否被删除
2. 外部API调用失败
问题: API提交失败: Connection timeout
解决:
- 检查网络连接
- 验证API密钥
- 检查API服务状态
3. 积分系统错误
问题: 可用积分不足
解决:
- 检查用户积分
- 验证积分冻结逻辑
- 重置用户积分
4. 任务超时
问题: 任务处理超时
解决:
- 检查外部API响应时间
- 调整超时设置
- 优化图片处理
监控建议
1. 实时监控
- 监控队列状态变化
- 跟踪失败任务数量
- 检查图片文件完整性
2. 日志分析
- 查看任务处理日志
- 分析错误信息模式
- 监控API调用成功率
3. 性能优化
- 优化图片处理流程
- 改进错误处理机制
- 增强重试逻辑
总结
通过诊断工具可以快速定位视频生成失败的原因:
- 图片传输问题 - 使用
/check-image/{taskId}检查 - 队列处理问题 - 使用
/queue-status监控 - 外部API问题 - 查看失败任务详情
- 系统配置问题 - 检查日志和配置
建议定期使用这些诊断接口来监控系统健康状态,及时发现和解决问题。