Pool::deactivate
(PHP 8.6+, True Async 1.0)
php
public Pool::deactivate(): voidForza 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
- Pool::activate --- Transizione allo stato ACTIVE
- Pool::recover --- Transizione allo stato RECOVERING
- Pool::getState --- Stato attuale
- Pool::close --- Chiusura permanente del pool (irreversibile)