何时对浏览器配置文件进行隔离

浏览器配置文件租约(lease)解决了并发问题。它能告诉你哪个 worker 拥有该配置文件。

但在自动化失败后,你会面临一个新问题。

这个配置文件是否仍然可以安全地重复使用?

所有权和健康状况是不同的概念。worker 在释放租约时,可能会使配置文件处于未知状态。该配置文件可能包含新的 cookies、已更改的 tokens 或未完成的表单。

如果你立即将该配置文件交给下一个 worker,他们会继承这些损坏。

这就是为什么你需要一个“隔离”(quarantine)状态。

隔离是一种故障后的状态。这意味着你不信任该账号、会话或环境。

在浏览器自动化中,配置文件不仅仅是一个文件夹。它承载着: • Cookies 和本地存储 • 登录状态和权限 • 代理设置和语言 • 最近的任务历史

如果运行在登录后失败,风险很高。你可能会遇到意外的重定向、验证提示或会话过期。

不要隔离每一次失败。在以下情况下不需要隔离:

  • 浏览器从未启动
  • 配置文件从未被打开
  • worker 在获取租约之前失败
  • 运行仅涉及公开页面
  • 浏览器正常关闭

在以下情况下,隔离至关重要:

  • worker 在打开配置文件后崩溃
  • 运行进入了已认证区域
  • 会话状态或 cookies 发生了变化
  • 失败发生在非幂等操作(如提交表单)附近
  • 运行期间代理或区域发生了变化
  • 证据不完整

简单的调度器只检查配置文件是锁定还是解锁。专业的系统会使用更多状态: • Available:准备就绪 • Leased:正在使用中 • Cooldown:需要短暂冷却 • Quarantined:由故障引起的不确定状态 • Needs Review:需要人工检查 • Retired:不再使用

被隔离的配置文件必须产生一个决策。它不应该是一个被遗忘的暂存区。应利用它来记录配置文件 ID、最后一个 URL、截图以及错误原因。

不要再将失败的账号环境视为干净的输入。租约可以防止冲突,而隔离可以防止连锁故障。

原文来源:https://dev.to/web4browser/when-a-browser-profile-should-be-quarantined-after-automation-failure-gpk