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
- Pool::activate — Erzwungene Aktivierung
- Pool::deactivate — Erzwungene Deaktivierung
- Pool::getState — Aktueller Zustand
- Pool::setCircuitBreakerStrategy — Strategie konfigurieren