Pool::recover
(PHP 8.6+, True Async 1.0)
public Pool::recover(): void
Porta il pool nello stato RECOVERING. In questo stato, il pool consente
un numero limitato di richieste per verificare la disponibilita’ del servizio.
Se le richieste hanno successo, il Circuit Breaker porta automaticamente
il pool nello stato ACTIVE. Se le richieste continuano a fallire,
il pool torna allo stato INACTIVE.
Parametri
Questo metodo non accetta parametri.
Valore di ritorno
Nessun valore restituito.
Esempi
Esempio #1 Tentativo di ripristino
<?php
use Async\Pool;
use Async\CircuitBreakerState;
$pool = new Pool(
factory: fn() => new HttpClient('https://api.example.com'),
max: 10
);
// Il pool e' disattivato, tenta il ripristino
if ($pool->getState() === CircuitBreakerState::INACTIVE) {
$pool->recover();
echo "Pool transitioned to recovery mode\n";
// Il Circuit Breaker permettera' il passaggio delle richieste di prova
}
Esempio #2 Tentativi di ripristino periodici
<?php
use Async\Pool;
use Async\CircuitBreakerState;
spawn(function() use ($pool) {
while (!$pool->isClosed()) {
if ($pool->getState() === CircuitBreakerState::INACTIVE) {
$pool->recover();
}
suspend(delay: 10000); // controlla ogni 10 secondi
}
});
Vedi anche
- Pool::activate — Attivazione forzata
- Pool::deactivate — Disattivazione forzata
- Pool::getState — Stato attuale
- Pool::setCircuitBreakerStrategy — Configura la strategia