Pool::deactivate

(PHP 8.6+, True Async 1.0)

public Pool::deactivate(): void

Forza la transizione del pool allo stato INACTIVE. In questo stato, il pool rifiuta tutte le richieste di acquisizione di risorse. Utilizzato per la disattivazione manuale quando vengono rilevati problemi con un servizio esterno.

A differenza di close(), la disattivazione e’ reversibile — il pool puo’ essere riportato allo stato di funzionamento tramite activate() o recover().

Parametri

Questo metodo non accetta parametri.

Valore di ritorno

Nessun valore restituito.

Esempi

Esempio #1 Disattivazione al rilevamento di un problema

<?php

use Async\Pool;

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

// Al rilevamento di un errore critico
try {
    $client = $pool->acquire();
    $response = $client->get('/critical-endpoint');
    $pool->release($client);
} catch (ServiceUnavailableException $e) {
    $pool->deactivate();
    echo "Service unavailable, pool deactivated\n";
}

Esempio #2 Manutenzione programmata

<?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";
}

Vedi anche