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
CircuitBreakerStrategydé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
- Pool::getState — État actuel du Circuit Breaker
- Pool::activate — Activation forcée
- Pool::deactivate — Désactivation forcée
- Pool::recover — Transition vers le mode récupération