Pool::recover

(PHP 8.6+, True Async 1.0)

public Pool::recover(): void

Versetzt den Pool in den RECOVERING-Zustand. In diesem Zustand laesst der Pool eine begrenzte Anzahl von Anfragen durch, um die Dienstverfuegbarkeit zu pruefen. Wenn die Anfragen erfolgreich sind, wechselt der Circuit Breaker automatisch den Pool in den ACTIVE-Zustand. Wenn die Anfragen weiterhin fehlschlagen, kehrt der Pool zu INACTIVE zurueck.

Parameter

Diese Methode nimmt keine Parameter entgegen.

Rueckgabewert

Es wird kein Wert zurueckgegeben.

Beispiele

Beispiel #1 Wiederherstellungsversuch

<?php

use Async\Pool;
use Async\CircuitBreakerState;

$pool = new Pool(
    factory: fn() => new HttpClient('https://api.example.com'),
    max: 10
);

// Pool ist deaktiviert, Wiederherstellung versuchen
if ($pool->getState() === CircuitBreakerState::INACTIVE) {
    $pool->recover();
    echo "Pool in Wiederherstellungsmodus gewechselt\n";
    // Circuit Breaker laesst Testanfragen durch
}

Beispiel #2 Periodische Wiederherstellungsversuche

<?php

use Async\Pool;
use Async\CircuitBreakerState;

spawn(function() use ($pool) {
    while (!$pool->isClosed()) {
        if ($pool->getState() === CircuitBreakerState::INACTIVE) {
            $pool->recover();
        }

        suspend(delay: 10000); // alle 10 Sekunden pruefen
    }
});

Siehe auch