服务器跑着好好的,一重启,用户下载完的文件没了。
排查了两小时,真相是:`_download_meta` 是一个内存字典。服务重启之后,所有 GID 和对应的任务信息全清零。aria2 那边还在愉快地跑,下载完成了,但服务器不认识这个 GID,orphan 逻辑判定「无主文件」,于是把刚下好的 2160p 剧集直接删掉了。
教训:**任何需要跨进程生命周期的状态,必须持久化**。内存只能活到下次重启。修法很简单:aria2 `on-download-complete` hook,下载完成的瞬间自己触发上传,完全不依赖服务器内存里的任何东西。同时把 orphan 逻辑改了——不认识的 GID,保留文件,不删。