期限切れのブラウザプロファイルロックの復旧
ブラウザプロファイルのロックは、2つのワーカーが同時に同じアカウントを開くのを防ぎます。
ほとんどの自動化システムは、復旧プロセスにおいて失敗します。ワーカーがクラッシュしたりネットワークが切断されたりすると、システムは古いロックを検知して削除してしまいます。これによりキューは進みますが、アカウントの状態が破損してしまいます。
期限切れのロックは、単に削除すべきファイルではありません。それは、制御された復旧パスを必要とする「未完了の操作」なのです。
ロックを単なるファイルとして扱うのはやめましょう。それを「リース(Lease)」として扱ってください。
安全なリースには以下が必要です:
- 所有者 (Owner)
- 有効期限 (Expiry time)
- ハートビート (Heartbeat)
- バージョン番号 (Fencing token)
バージョン番号は極めて重要です。すべての書き込みには最新のトークンを含める必要があります。新しいワーカーが引き継いだ後に古いワーカーが戻ってきた場合、システムは古いトークンを拒否します。これにより、サイレントなデータ破損を防ぐことができます。
「ロック中」からいきなり「利用可能」へ移行してはいけません。ステートマシンを使用して、以下のステージを経て移行してください:
- 保持中 (Held)
- 期限切れの疑い (Suspected stale)
- 検疫中 (Quarantined)
- 調査済み (Inspected)
- 利用可能 | 再開保留中 | 手動レビュー (Available | Resume pending | Manual review)
検疫(Quarantine)ステージは極めて重要です。調査中に2つ目のワーカーがプロファイルに触れるのを防ぎます。
調査中は、以下の証拠を収集する必要があります:
- ブラウザのプロセスはまだ実行中でしたか?
- 最後に確認されたURLは何でしたか?
- タスクはチェックアウトや設定変更などの機密性の高いステップにありましたか?
- 失敗時のスクリーンショットはありますか?
機密性の高い操作中にタスクが停止した場合は、自動再開しないでください。手動レビューに回してください。自動化には、誤った判断を防ぐための境界線が必要です。
避けるべき一般的な間違い:
- プロファイルの安全性を確認せずにロックを削除すること。
- 古いワーカーからの遅延した書き込みを拒否するためにフェンシングトークンを使用しないこと。
- 安全なチェックポイントが確認できていない状態でフォームの送信をリトライすること。
- 復旧プロセス中にプロキシを変更すること。
目標は復旧を複雑にすることではありません。復旧を「明示的」にすることです。
ロックは単なる症状に過ぎません。システムは、そのロックの背後にあるアカウント環境を保護しなければなりません。
1つのプロファイル。 1つの所有者リース。 1つのアクティブなタスク。 1つの証拠の足跡。 1つの復旧決定。