Zum Inhalt springen

Session-Pools: der Kaltstart entfällt

Halte Browser im Voraus bereit und beanspruche einen in Millisekunden. Warum die Poolgröße eine Gesamtzahl ist und ein Pool nie zurückfällt oder die Form wechselt.

Zuletzt aktualisiert:

Browser, die schon laufen

Einen Browser-Container zu starten dauert Sekunden; einen aus dem Pool zu beanspruchen fast keine. Ein Pool hält Browser, die bereits laufen, konfiguriert und wartend — eine Session mit poolId beginnt auf einer Maschine, die existiert, statt auf einer, die gerade gebaut wird.

Zwei Eigenschaften halten Pools ehrlich. Erstens ist die Größe eine Gesamtzahl — warme Browser plus die von Sessions beanspruchten —, ein Pool von zehn mit zehn offenen Sessions hat also per Definition nichts Warmes mehr, nicht aus Versehen. Zweitens fällt eine Pool-Session nie auf einen Kaltstart zurück: Ist der Pool leer, wird die Anfrage abgelehnt. Alles andere machte den Pool zu einem bloßen Hinweis, und ein Hinweis ist kein Kapazitätsplan.

Dieselbe Strenge gilt für die Form: Die Browser wurden mit fester Locale und festem Viewport gestartet; verlangt eine Session vom Pool eine andere Form, wird sie abgelehnt statt still falsch bedient.

Pool anlegen und Zähler lesen

Voraussetzungen: api-key paid-plan

BASE="https://browserberg.com"
AUTH="Authorization: Bearer $BROWSERBERG_API_KEY"
JSON="Content-Type: application/json"

# Size is a TOTAL: warm browsers plus browsers already claimed by sessions.
POOL=$(curl -s -X POST "$BASE/v1/pools" -H "$AUTH" -H "$JSON" \
  -d '{ "name": "Docs walkthrough", "size": 1, "shape": { "locale": "de-DE" } }')
PID=$(echo "$POOL" | python3 -c 'import json,sys; print(json.load(sys.stdin)["pool"]["id"])')

curl -s "$BASE/v1/pools/$PID" -H "$AUTH" \
  | python3 -c 'import json,sys; p = json.load(sys.stdin)["pool"]; print(json.dumps({
      "name": p["name"], "size": p["size"], "warm": p["warm"], "inUse": p["inUse"]}, indent=2))'

curl -s -X DELETE "$BASE/v1/pools/$PID" -H "$AUTH" > /dev/null

Hinweis · Reservierte Browser sind Teil der Bezahltarife

Reservierte Pool-Browser gehören zu den Bezahltarifen — im Free-Tarif sind es 0 — und werden als Bestand abgerechnet: Reservierte Kapazität kostet, solange sie reserviert ist, ob Sessions sie beanspruchen oder nicht.

Tiefer einsteigen

  • Tarife und Kontingente Wie viele reservierte Browser jeder Tarif umfasst
  • Referenz Pools Anlegen, Größe ändern und Löschen über die API
  • Session-Lebenszyklus Was warmStart im Session-Datensatz bedeutet