在 4.0 之前决定 `ContextPipelineInterruptedError` 的公共状态
作者: janbuchar创建于 2026年9月18日更新于 2026年9月22日
标签t-tooling
- 与 #3264 有关 - 目前从
preNavigationHooks/extendContext中抛出它是跳过请求的唯一方法,而不计入失败 - 不重试,不requestsFailed,不记录错误日志,请求被标记为已处理。它取代了noRetry+ 抛出 + 减少requestsFailed+ 修补log.error的 v3 审计。 - 它从@crawlee/basic中以@public形式导出,但没有 JSDoc 或指南条目,其消息提到"上下文初始化",只有在管道中间件中才会受到尊重(从requestHandler中,它被包装为RequestHandlerError并被视为正常失败),它绕过onSkippedRequest并从未设置request.state = SKIPPED,并且请求事务会回滚在抛出之前写入的任何内容。 - 有两种出路: 赞许它(记录它,从requestHandler中也尊重它,通过与 robots.txt / 重定向跳过相同的跳过记账路径传递它),或者现在将其标记为@internal并添加context.skipRequest(reason?)作为公共 API。 - 取消导出它并更改requestHandler对其的处理方式在稳定之前都很便宜;skipRequest()本身是增量的,可以跟进。
内容来源: apify/crawlee