断点续传机制——归档中断了怎么办
为什么需要断点续传
QQ 空间归档是一个长时间运行的任务——有几千条动态的账号可能要跑好几个小时。这么长的时间窗口里,什么情况都可能发生:
- 网络波动或 Wi-Fi 断了
- QQ 空间接口临时限流
- 应用意外崩溃
- 电脑休眠或被强制关机
如果每次中断都从头来过,归档几万条动态可能要跑几十遍才能完成。断点续传解决了这个问题。
工作原理
QzoneArchive 在本地持久化任务进度,记录每一批请求做到了哪个位置。核心思路:
- 每成功抓取一批数据(比如 20 条动态),进度位置写入 SQLite
- 启动归档任务前,检查数据库里有没有未完成的任务
- 如果有,从上次记录的进度位置继续发起请求
- 已入库的数据不重复拉取
这和下载工具的断点续传是同一个思路——只是这里的"数据块"是 QQ 空间的动态列表分页。
哪些情况可以恢复
以下场景都可以从上次断点继续:
- 网络中断 → 恢复后重新打开应用,点继续归档
- 手动暂停 → 随时可以暂停任务,稍后继续
- 接口限流 → 应用自己会暂停倒计时,时间到了自动恢复
- 应用崩溃 → 重新打开应用,进度自动检测
- 电脑休眠 → 唤醒后应用自动继续
哪些情况恢复不了
理论上"什么都能恢复",但有几个边界需要说明:
- 归档任务被主动删除了:删除意味着清空进度记录,恢复不了
- 超过了很长时间(比如几星期后才回来):QQ 空间接口可能已经更新,断点位置的分页逻辑可能变了。这种情况建议重新开始归档,项目方也提醒不要让归档拖太久
- 登录凭证过期了:需要重新扫码登录后才能继续
归档期间的小技巧
- 尽量保持网络稳定,用 Wi-Fi 而不是移动网络
- 桌面端可以关掉自动休眠(Windows 电源设置里改成"从不")
- 定期切到应用看一眼,确认进度条在动
- 长时间归档(超过 6 小时)建议等夜深人静没人用网的时候跑,减少干扰