Pool::setCircuitBreakerStrategy

(PHP 8.6+, True Async 1.0)

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

Définit la stratégie du Circuit Breaker pour le pool. Le Circuit Breaker surveille la disponibilité d’un service externe : en cas de détection de multiples échecs, le pool passe automatiquement à l’état INACTIVE, empêchant une cascade d’erreurs. Lorsque le service récupère, le pool revient à l’état actif.

Paramètres

strategy
Un objet CircuitBreakerStrategy définissant les règles de transition entre les états. null — désactiver le Circuit Breaker.

Valeur de retour

Aucune valeur n’est retournée.

Exemples

Exemple #1 Définition d’une stratégie

<?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,       // after 5 errors — deactivate
    recoveryTimeout: 30000,    // after 30 seconds — attempt recovery
    successThreshold: 3        // 3 successful requests — full activation
);

$pool->setCircuitBreakerStrategy($strategy);

Exemple #2 Désactivation du Circuit Breaker

<?php

use Async\Pool;

// Disable the strategy
$pool->setCircuitBreakerStrategy(null);

Voir aussi