ComponentiPool::deactivate

Pool::deactivate ​

(PHP 8.6+, True Async 1.0)

php
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
<?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
<?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 ​