Pool::setCircuitBreakerStrategy
(PHP 8.6+, True Async 1.0)
php
public Pool::setCircuitBreakerStrategy(?CircuitBreakerStrategy $strategy): voidImposta la strategia del Circuit Breaker per il pool. Il Circuit Breaker monitora la disponibilita' di un servizio esterno: al rilevamento di molteplici errori, il pool passa automaticamente allo stato INACTIVE, prevenendo una cascata di errori. Quando il servizio si riprende, il pool torna allo stato attivo.
Parametri
strategy : Un oggetto CircuitBreakerStrategy che definisce le regole di transizione tra gli stati. null --- disabilita il Circuit Breaker.
Valore di ritorno
Nessun valore restituito.
Esempi
Esempio #1 Impostazione di una strategia
php
<?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, // dopo 5 errori — disattiva
recoveryTimeout: 30000, // dopo 30 secondi — tenta il ripristino
successThreshold: 3 // 3 richieste riuscite — attivazione completa
);
$pool->setCircuitBreakerStrategy($strategy);Esempio #2 Disabilitazione del Circuit Breaker
php
<?php
use Async\Pool;
// Disabilita la strategia
$pool->setCircuitBreakerStrategy(null);Vedi anche
- Pool::getState --- Stato attuale del Circuit Breaker
- Pool::activate --- Attivazione forzata
- Pool::deactivate --- Disattivazione forzata
- Pool::recover --- Transizione alla modalita' di ripristino