736d644792fbe7d9f19b74a7d6b48e1eaf2efc4f
原实现:
runningTask.value=true
await axios.post(`${API_BASE}/api/run_monitor`)
setTimeout(()=>fetchData(), 3000)
setTimeout(()=>runningTask.value=false, 1000)
后端 run_monitor 里的 execute_monitor_task() 是同步阻塞的,105 台设备逐个登录、
请求目录、下载文件,实测要跑几分钟。原实现发完请求就固定等 3 秒刷新,此时爬虫
还在跑,拿到的是上一次的数据;1 秒后 loading 也复位了,用户以为跑完了 —— 这就是
“点检测没反应/数据不更新”的来源,和之前反复修的那类症状同源。
- 显式传 timeout: 600000(10 分钟),硬抗后端同步阻塞,避免请求先于爬虫断开。
- 改为 await fetchData(),等后端真正返回后再取数,不再用固定延时猜。
- try/catch/finally 收敛:成功提示、失败把后端 message 透出来、loading 一律复位。
- 开头加 runningTask 守卫,防止重复点击并发触发多次采集。
构建产物 web_dist 已同步更新(index-0c48fe24.js),按 .gitignore 不入库。
Description
站点信息爬取
Languages
Python
100%