Pool::deactivate
(PHP 8.6+, True Async 1.0)
php
public Pool::deactivate(): voidVersetzt den Pool erzwungen in den INACTIVE-Zustand. In diesem Zustand lehnt der Pool alle Anfragen zum Ressourcenerwerb ab. Wird fuer die manuelle Deaktivierung verwendet, wenn Probleme mit einem externen Dienst erkannt werden.
Im Gegensatz zu close() ist die Deaktivierung reversibel --- der Pool kann ueber activate() oder recover() wieder in einen funktionsfaehigen Zustand versetzt werden.
Parameter
Diese Methode nimmt keine Parameter entgegen.
Rueckgabewert
Es wird kein Wert zurueckgegeben.
Beispiele
Beispiel #1 Deaktivierung bei Problemerkennung
php
<?php
use Async\Pool;
$pool = new Pool(
factory: fn() => new HttpClient('https://api.example.com'),
max: 10
);
// Bei Erkennung eines kritischen Fehlers
try {
$client = $pool->acquire();
$response = $client->get('/critical-endpoint');
$pool->release($client);
} catch (ServiceUnavailableException $e) {
$pool->deactivate();
echo "Dienst nicht verfuegbar, Pool deaktiviert\n";
}Beispiel #2 Geplante Wartung
php
<?php
use Async\Pool;
function startMaintenance(Pool $pool): void
{
$pool->deactivate();
echo "Pool fuer Wartung deaktiviert\n";
}
function endMaintenance(Pool $pool): void
{
$pool->activate();
echo "Wartung abgeschlossen, Pool aktiviert\n";
}Siehe auch
- Pool::activate --- In den ACTIVE-Zustand wechseln
- Pool::recover --- In den RECOVERING-Zustand wechseln
- Pool::getState --- Aktueller Zustand
- Pool::close --- Dauerhafte Schliessung des Pools (irreversibel)