Files
dysync/docs/数据看板不更新问题排查.md
T
yuming ad97fd3da5 整理仓库:扩展 gitignore、归档文档、清理冗余 Dockerfile
- .gitignore 新增忽略 .idea/、videos/、*.tar.gz、*.csproj.user、db 运行时文件
- 根目录 15 个中文运维 md 归档到 docs/
- 删除无部署脚本引用的 Dockerfile 与 Dockerfile-arm(保留 Dockerfile.prod)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 21:28:41 +08:00

3.5 KiB
Raw Blame History

数据看板不更新问题排查

🔍 问题现象

视频已经下载了,但是数据看板中的数据没有更新。

📋 可能的原因

1. 数据库记录未保存

  • 视频文件下载成功,但数据库记录保存失败
  • 检查日志中是否有 "批量保存视频到数据库失败" 的错误

2. 前端缓存问题

  • 浏览器缓存了旧的统计数据
  • 前端组件没有刷新数据

3. 数据库查询问题

  • 统计查询没有正确读取数据

🔧 排查步骤

步骤1:检查数据库中的记录

方法一:通过前端页面

  1. 访问 http://localhost:8001
  2. 进入「同步记录」页面
  3. 查看是否有视频记录显示
  4. 检查视频记录是否有 videoSavePath 字段

方法二:通过 Swagger API

  1. 访问 http://localhost:10101/swagger
  2. 找到 POST /api/video/paged
  3. 输入参数:{"pageIndex":1,"pageSize":10}
  4. 执行查询,查看返回的数据

方法三:直接查询数据库

cd /Users/gaotu/WebstormProjects/dysync.net
sqlite3 db/dy.sqlite "SELECT COUNT(*) FROM dy_collect_video;"
sqlite3 db/dy.sqlite "SELECT id, videoTitle, videoSavePath FROM dy_collect_video LIMIT 5;"

步骤2:检查日志

查看最新的日志文件,搜索关键词:

  • "批量保存视频到数据库失败"
  • "本次共同步成功"
  • "下载成功"
# 查看最新日志
tail -100 logs/log-debug-20251120.txt | grep -E "(下载成功|批量保存|同步成功)"

步骤3:检查前端数据刷新

  1. 清除浏览器缓存

    • 按 F12 打开开发者工具
    • 右键点击刷新按钮
    • 选择「清空缓存并硬性重新加载」
  2. 手动刷新数据看板

    • 进入「数据看板」页面
    • 按 F5 刷新页面
    • 或关闭页面重新打开
  3. 检查网络请求

    • 按 F12 打开开发者工具
    • 切换到「Network」标签
    • 刷新「数据看板」页面
    • 查看 /api/video/statics 请求的响应数据

🛠️ 解决方案

方案1:强制刷新前端数据

在前端代码中添加自动刷新功能,修改 statics.vue:

// 在 onMounted 中添加定时刷新
onMounted(() => {
  loadDashboardData();
  // 每30秒自动刷新一次
  const timer = setInterval(() => {
    loadDashboardData();
  }, 30000);
  onUnmounted(() => {
    clearInterval(timer);
  });
});

方案2:检查数据库保存逻辑

如果日志显示 "批量保存视频到数据库失败",需要检查:

  1. 数据库连接是否正常
  2. 视频记录是否有重复(AwemeId 冲突)
  3. 字段是否有空值或格式错误

方案3:手动触发数据刷新

在前端「数据看板」页面添加刷新按钮:

<a-button @click="loadDashboardData" type="primary">刷新数据</a-button>

📝 快速检查清单

  • 数据库中是否有视频记录?
  • 视频记录是否有 videoSavePath 字段?
  • 视频文件是否实际存在?
  • 日志中是否有保存失败的错误?
  • 前端是否缓存了旧数据?
  • API 返回的数据是否正确?

🎯 立即操作

  1. 刷新浏览器页面(清除缓存)
  2. 检查「同步记录」页面,看是否有视频记录
  3. 查看浏览器控制台(F12),检查是否有错误
  4. 查看网络请求,确认 API 返回的数据

如果「同步记录」页面有数据,但「数据看板」没有更新,那就是前端缓存问题,需要强制刷新。

如果「同步记录」页面也没有数据,那就是数据库保存问题,需要检查日志。