Pool::deactivate

(PHP 8.6+, True Async 1.0)

public Pool::deactivate(): void

Force la transition du pool vers l’état INACTIVE. Dans cet état, le pool rejette toutes les demandes d’acquisition de ressources. Utilisé pour la désactivation manuelle lorsque des problèmes avec un service externe sont détectés.

Contrairement à close(), la désactivation est réversible — le pool peut être remis en état de fonctionnement via activate() ou recover().

Paramètres

Cette méthode ne prend aucun paramètre.

Valeur de retour

Aucune valeur n’est retournée.

Exemples

Exemple #1 Désactivation lors de la détection d’un problème

<?php

use Async\Pool;

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

// Upon detecting a critical error
try {
    $client = $pool->acquire();
    $response = $client->get('/critical-endpoint');
    $pool->release($client);
} catch (ServiceUnavailableException $e) {
    $pool->deactivate();
    echo "Service unavailable, pool deactivated\n";
}

Exemple #2 Maintenance planifiée

<?php

use Async\Pool;

function startMaintenance(Pool $pool): void
{
    $pool->deactivate();
    echo "Pool deactivated for maintenance\n";
}

function endMaintenance(Pool $pool): void
{
    $pool->activate();
    echo "Maintenance complete, pool activated\n";
}

Voir aussi