超时策略
通用抓取 API 采用两级超时策略来管理超时,旨在确保请求执行的可控性、系统稳定性和高效的资源管理。通过设计两种独立的超时策略,API 可以在复杂的网络环境和动态页面解析场景中提供强大的性能,同时有效避免因资源耗尽或长时间等待而导致的系统故障。
1. 全局执行超时
定义: 全局执行超时策略限制 API 请求中所有指令的累积执行时间。
超时阈值: 180 秒
范围:
js_instructions
指令集中的所有wait_xxx
系列操作(例如wait_for_selector
或wait_for_event
)。- 此阈值涵盖指令执行期间的潜在等待时间,确保长时间运行的任务不会无限期地占用系统资源。
超时行为:
- 当累积执行时间达到 180 秒时,系统将强制终止整个 API 请求进程并返回超时错误响应。
- 此策略确保 API 的运行时限制,防止因复杂指令或配置错误导致的资源滥用。
2. 页面加载超时
定义: 页面加载超时关注浏览器初始化和页面资源加载阶段的时间限制。
超时阈值: 30 秒(固定值)
范围:
- 浏览器实例(例如 Puppeteer 或其他浏览器驱动程序)的初始化过程。
- 页面资源加载,包括 HTML、CSS、JavaScript 和其他网络资源。
超时行为:
- 如果 URL 访问失败或页面资源加载时间超过 30 秒,系统将立即返回错误响应,而无需等待全局超时。
- 此策略旨在快速识别不可访问的目标页面并避免长时间等待无效资源。
3. 超时优先级规则
- 页面加载超时具有更高的优先级,可以在全局超时之前中断请求执行。
- 当页面加载阶段发生超时时,系统将立即终止请求进程,而不会进入后续指令执行阶段。