𝗗𝗲𝘀𝗶𝗴𝗻𝗲𝗻 𝘃𝗮𝗻 𝗕𝗿𝗼𝘄𝘀𝗲𝗿𝗽𝗿𝗼𝗳𝗶𝗲𝗹-𝗹𝗲𝗮𝘀𝗲𝘀 𝘃𝗼𝗼𝗿 𝗠𝘂𝗹𝘁𝗶-𝗪𝗼𝗿𝗸𝗲𝗿 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝘀𝗲𝗿𝗶𝗻𝗴

Een verouderde lock is een herstelprobleem. Een profiel-lease is een runtime-ontwerpprobleem.

De meeste mensen denken dat een lock-bestand voldoende is om te voorkomen dat twee workers hetzelfde browserprofiel openen. Dat is een fout wanneer je opschaalt.

Een lock vertelt je alleen of een profiel bezet is. Het vertelt je niet of het profiel veilig te gebruiken is.

Als een worker crasht tijdens het inloggen, is de status van het account onbekend. De volgende worker kan op de verkeerde pagina beginnen of met beschadigde cookies. Dit veroorzaakt stille fouten die moeilijk te debuggen zijn.

Een lease is meer dan een lock. Het is een contract tussen je scheduler, je worker en je profiel.

Een goede lease beantwoordt deze vragen:

  • Wie is op dit moment de eigenaar van dit profiel?
  • Welke specifieke run gebruikt het?
  • Wanneer verloopt deze eigendom?
  • Wat gebeurt er als de worker verdwijnt?

Een minimaal lease-record moet het volgende bevatten: • profile_id en account_id • worker_id en run_id • proxy_id • heartbeat_at (om te controleren of de worker nog actief is) • last_safe_step (om de laatst bekende goede status te controleren) • release_policy

Beschouw het verlopen van een Time To Live (TTL) niet als een commando om een lock te verwijderen. Een verlopen lease is een onopgelost einde. Een schone release is een verklaarbaar einde.

Als een worker stopt met het verzenden van heartbeats, hergebruik dat profiel dan niet automatisch. Verplaats het profiel in plaats daarvan naar een quarantainestatus.

Gebruik deze statussen voor je profielen:

  • Available: Klaar voor checkout.
  • Leased: Momenteel in gebruik.
  • Stale: Worker stopt met rapporteren; status is onbekend.
  • Review Required: Vereist menselijke controle.
  • Quarantined: Onveilig om te gebruiken totdat het is vrijgegeven.
  • Disabled: Uit de rotatie.

Quarantaine is geen straf. Het is een veiligheidsmechanisme. Je moet een profiel in quarantaine plaatsen als:

  • De worker is uitgevallen tijdens het verzenden van een formulier.
  • De uiteindelijke URL is onbekend.
  • De proxy is gewijzigd tijdens de run.
  • Er verscheen een beveiligingsprompt.

Een lock beschermt een profiel tegen gelijktijdige toegang. Een lease beschermt een profiel tegen onveilig hergebruik.

Stop met het behandelen van browserprofielen als wegwerkmapjes. Behandel ze als beheerde accountomgevingen.

Bron: https://dev.to/web4browser/designing-browser-profile-leases-for-multi-worker-automation-1bfa