跳到主要内容

~/posts · 2026.10.26

进度条走到一半,关掉窗口以后怎么办

分块、临时文件和任务进度落库后,断网、暂停和重启终于能接着传。

1 分钟 devshan

传到一半断网,再打开程序,列表里还有一个进度数字,任务却未必接得上。我把传输状态从页面里往核心的持久任务上挪,重新梳理了暂停、失败、重试和取消。

上传先核对远端已经存在的分块,再继续下一块。下载保留临时文件,通过 Range 接着读;临时文件同时绑定内容版本,避免同名文件更新后拼出一份新旧混杂的内容。

任务和进度都落到本地库里,切页和重启后再读回来。失败任务还得保留来源文件,特别是文件选择器交付的临时副本,否则下一次点重试就找不到原始字节了。

取消也沿着任务传到磁盘读取和网络请求,等收尾以后再更新界面。暂停的任务可以继续,取消则结束本次操作。已经成功发布的文件会留在原处,避免迟到的取消请求误清内容。

退出程序时又查到一个顺序问题:HTTP 停了,后台同步、传输和缩略图任务可能还在写数据库。原来数据库关得太早,正常退出也会偶尔报错。

现在先停止接收新工作,取消或等待在途任务,再关闭数据库和日志。我重点检查了请求是否停止、临时文件是否保留,以及重启后能否接回同一份任务。