Pool::deactivate

(PHP 8.6+, True Async 1.0)

public Pool::deactivate(): void

Versetzt 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

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

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