Pool::setCircuitBreakerStrategy
(PHP 8.6+, True Async 1.0)
public Pool::setCircuitBreakerStrategy(?CircuitBreakerStrategy $strategy): void
Imposta 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
CircuitBreakerStrategyche 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
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
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