先给结论:中断后不要重新跑全站,也不要凭感觉认为“大部分已完成”。正确做法是把任务日志、结果文件和中断原因三者对齐,先算出可确认的覆盖边界,再决定续跑、补跑还是重跑。下面用一个假设情境把判断过程走一遍。
假设你用的是某类批量查询工具,对约两千个网址发起全站扫描,跑到中途程序退出。此时“已覆盖范围”并不是一个数字,而要看中断属于哪一类。
判断动作:打开结果文件,检查最后一条记录是否结构完整、能否正常解析。如果最后一行是残缺的,说明写入级中断的可能性很高,此时把该条及其后条目全部视为未覆盖,比强行补全更稳妥。
多数批量工具会同时留下任务日志和结果文件,两者不一致时以结果文件为准,因为日志可能只记录“已提交”而非“已返回”。核对可以按下面的顺序做。
这一步的结果直接决定下一步:如果确认覆盖集已经接近全量,且高风险区很小,续跑剩余部分即可;如果结果文件缺失严重,续跑反而会制造重复和错位,重跑更省事。
这是本篇最核心的决策。两种做法都成立,但适用条件不同。
选择续跑的条件:结果文件可完整解析,能明确列出已覆盖的标识(网址或查询词),且工具支持按清单跳过已完成项。代价是需要额外做一次清单比对,如果标识不稳定(比如同一网址带不同参数),比对本身可能出错。
选择重跑的条件:结果文件被截断、字段缺失,或工具不支持跳过已完成项。代价是重复消耗查询额度或时间,但对小规模站点来说,这种代价往往低于人工比对的成本。
假设情境:两千个网址,结果文件只写到一千二百条且最后一行残缺。此时可确认覆盖约一千一百多条,剩余约八百条。若工具支持导入“已完成清单”并跳过,续跑可行;若不支持,直接重跑全部两千条,虽然多花一倍时间,但避免了漏项和错位。这里没有统一答案,关键看你的清单标识是否稳定、工具是否支持跳过。
无论选续跑还是重跑,都建议先做一次小范围验证:从待确认集中抽取少量条目,单独跑一遍,确认工具当前能正常返回结果。
这个动作的结果会影响下一步判断。如果小范围验证正常返回,说明中断是偶发的,续跑剩余部分风险较低;如果验证仍然失败或返回异常,说明中断原因没有消除,此时续跑只会再次中断,应先排查原因,而不是继续消耗任务。
另外,把这次中断的覆盖边界记录下来,包括中断时间、已覆盖数量和判断依据。下次再遇到类似情况时,可以直接复用这套核对顺序,而不必重新摸索。
有些现象容易被误读为“已经跑完”,实际并不成立。
出现这些信号时,不要用条数直接下结论。更稳妥的做法是以可解析、非空、标识唯一的记录作为覆盖依据,再决定续跑还是重跑。
把覆盖边界判断清楚之后再动手,比中断后立刻重跑更能避免重复劳动和数据错位,这也是这类批量任务最值得保留的操作习惯。