WordPress插件一次全站扫描被中断后怎样判断已覆盖范围

📍 WDQWDWQD987AAAAA:216.73.216.252
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /c76aeb0c5937.html
📄

WordPress插件一次全站扫描被中断后怎样判断已覆盖范围

扫描中断后,不能把“页面列表里有多少条记录”直接当成已覆盖范围。更可靠的做法是:先找到插件在本次任务中留下的进度标记,再用“已处理对象数 + 最后成功时间 + 跳过原因”三项交叉判断。只有这三项能互相印证时,才适合继续在原任务上追加扫描;否则应缩小范围重新扫描,而不是盲目重跑全站。

先分清中断发生在哪一层

WordPress插件执行全站扫描时,通常要跨过三个层次:数据库查询、远程请求、结果写入。中断原因不同,已覆盖范围的判断方式也不同。

如果插件只提供一个“已扫描 N 条”的计数,而没有时间戳和状态字段,这个数字只能当参考。因为它无法区分“处理成功”“请求已发出但结果未知”“因超时被跳过”这三种情况。

用三个证据交叉确定覆盖边界

判断已覆盖范围时,建议按下面顺序核对,任何一项缺失都要降低结论的确定性。

  1. 最后成功写入的时间戳:把任务开始时间到该时间戳之间的对象视为候选已覆盖区间。时间戳之后的对象状态未知。
  2. 对象标识是否连续:如果插件按 ID 或分页游标推进,检查已写入的标识是否连续。出现空洞说明中间有跳过或写入失败。
  3. 跳过原因分类:把“无内容可扫”“请求超时”“权限不足”“格式不支持”分开统计。只有“无内容可扫”可以视为已覆盖;其余都算未完成。

假设一次扫描计划处理 500 个对象,中断时写入记录显示已处理到第 320 个,但其中 40 个标记为“请求超时”。那么已覆盖范围不是 320,而是 280 个确定完成的对象;那 40 个需要重新处理。这个例子说明,计数必须扣除不确定项,否则后续决策会建立在偏大的覆盖范围上。

保留、改写还是退出:先看覆盖缺口落在哪

扫描中断后是否继续保留原有内容或合作关系,取决于缺口集中在哪一类对象上。

一个实际动作是:先导出已写入记录的对象标识列表,再与站点对象总表做差集。差集就是未覆盖范围。如果差集里核心对象占比高,下一步应补扫差集;如果差集里几乎都是边缘对象,下一步可以直接对已覆盖部分做取舍评估。

重新扫描时怎样避免再次中断

如果决定补扫,不要直接重跑全站。更稳妥的方式是分批执行,并让每批结束后写入进度标记。

这样做的结果是:下一次中断时,已覆盖范围可以直接从批次标记读出,不需要再靠推测。如果插件本身不提供这些标记,就需要在外部记录每批的起止对象,或者改用支持断点续扫的替代方案。具体某个插件是否支持断点续扫、如何配置批次大小,需要以该插件当前版本的文档和实际界面为准。

什么时候可以不再补扫

补扫不是必须完成全站才算结束。出现以下条件时,可以停止补扫并进入保留或退出决策:

但要注意:请求量、抓取量或扫描计数归零,并不能单独证明覆盖已经完成。它也可能是任务被提前终止、写入失败或统计口径变化造成的。要结合时间戳和对象标识一起看,才能判断覆盖边界是否真的闭合。只有证据链能互相印证时,把已覆盖结果用于保留、改写或退出才是稳妥的。

图1 图2

nginx