Pool::setCircuitBreakerStrategy

(PHP 8.6+, True Async 1.0)

public Pool::setCircuitBreakerStrategy(?CircuitBreakerStrategy $strategy): void

Legt die Circuit-Breaker-Strategie fuer den Pool fest. Der Circuit Breaker ueberwacht die Verfuegbarkeit eines externen Dienstes: Bei mehreren Ausfaellen wechselt der Pool automatisch in den INACTIVE-Zustand und verhindert so eine Fehlerkaskade. Wenn der Dienst wiederhergestellt ist, kehrt der Pool in den aktiven Zustand zurueck.

Parameter

strategy
Ein CircuitBreakerStrategy-Objekt, das die Regeln fuer den Uebergang zwischen Zustaenden definiert. null — Circuit Breaker deaktivieren.

Rueckgabewert

Es wird kein Wert zurueckgegeben.

Beispiele

Beispiel #1 Eine Strategie festlegen

<?php

use Async\Pool;
use Async\CircuitBreakerStrategy;

$pool = new Pool(
    factory: fn() => new HttpClient('https://api.example.com'),
    destructor: fn(HttpClient $c) => $c->close(),
    max: 10
);

$strategy = new CircuitBreakerStrategy(
    failureThreshold: 5,       // nach 5 Fehlern — deaktivieren
    recoveryTimeout: 30000,    // nach 30 Sekunden — Wiederherstellung versuchen
    successThreshold: 3        // 3 erfolgreiche Anfragen — vollstaendige Aktivierung
);

$pool->setCircuitBreakerStrategy($strategy);

Beispiel #2 Circuit Breaker deaktivieren

<?php

use Async\Pool;

// Strategie deaktivieren
$pool->setCircuitBreakerStrategy(null);

Siehe auch