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