Pool::recover
(PHP 8.6+, True Async 1.0)
php
public Pool::recover(): voidVersetzt 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
<?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
<?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
- Pool::activate --- Erzwungene Aktivierung
- Pool::deactivate --- Erzwungene Deaktivierung
- Pool::getState --- Aktueller Zustand
- Pool::setCircuitBreakerStrategy --- Strategie konfigurieren