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 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

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