Design von Browser-Profil-Leases für Multi-Worker-Automatisierung
Ein veralteter Lock ist ein Problem der Wiederherstellung. Ein Profil-Lease ist ein Problem des Laufzeit-Designs.
Die meisten denken, eine Lock-Datei reiche aus, um zu verhindern, dass zwei Worker dasselbe Browser-Profil öffnen. Das ist ein Fehler, wenn man skaliert.
Ein Lock sagt dir nur, ob ein Profil gerade belegt ist. Er sagt dir nicht, ob das Profil sicher zu verwenden ist.
Wenn ein Worker mitten im Login abstürzt, ist der Kontostatus unbekannt. Der nächste Worker startet möglicherweise auf der falschen Seite oder mit beschädigten Cookies. Dies führt zu stillen Fehlern, die schwer zu debuggen sind.
Ein Lease ist mehr als ein Lock. Er ist ein Vertrag zwischen deinem Scheduler, deinem Worker und deinem Profil.
Ein guter Lease beantwortet diese Fragen:
- Wer besitzt dieses Profil gerade?
- Welcher spezifische Run verwendet es?
- Wann läuft dieser Besitz ab?
- Was passiert, wenn der Worker verschwindet?
Ein minimaler Lease-Datensatz sollte Folgendes enthalten: • profile_id und account_id • worker_id und run_id • proxy_id • heartbeat_at (um zu prüfen, ob der Worker noch aktiv ist) • last_safe_step (um den letzten bekannten guten Zustand zu prüfen) • release_policy
Behandle das Ablaufen einer Time To Live (TTL) nicht als Befehl, einen Lock zu löschen. Ein abgelaufener Lease ist ein ungelöstes Ende. Ein sauberes Release ist ein erklärbares Ende.
Wenn ein Worker aufhört, Heartbeats zu senden, verwende dieses Profil nicht automatisch wieder. Versetze das Profil stattdessen in einen Quarantäne-Zustand.
Verwende diese Zustände für deine Profile:
- Available: Bereit zur Nutzung.
- Leased: Aktuell in Verwendung.
- Stale: Worker meldet nichts mehr; Zustand ist unbekannt.
- Review Required: Erfordert manuelle Prüfung.
- Quarantined: Unsicher in der Verwendung, bis die Freigabe erfolgt.
- Disabled: Außer der Rotation.
Quarantäne ist keine Bestrafung. Sie ist ein Sicherheitsmechanismus. Du solltest ein Profil in Quarantäne stellen, wenn:
- Der Worker während des Absendens eines Formulars abgestürzt ist.
- Die finale URL unbekannt ist.
- Der Proxy während des Runs gewechselt hat.
- Ein Sicherheitsdialog erschienen ist.
Ein Lock schützt ein Profil vor gleichzeitigem Zugriff. Ein Lease schützt ein Profil vor unsicherer Wiederverwendung.
Hör auf, Browser-Profile wie Wegwerf-Ordner zu behandeln. Behandle sie wie verwaltete Account-Umgebungen.
Source: https://dev.to/web4browser/designing-browser-profile-leases-for-multi-worker-automation-1bfa