Pool::deactivate
(PHP 8.6+, True Async 1.0)
public Pool::deactivate(): void
Transiciona forzosamente el pool al estado INACTIVE. En este estado,
el pool rechaza todas las solicitudes de adquisición de recursos. Se utiliza para
la desactivación manual cuando se detectan problemas con un servicio externo.
A diferencia de close(), la desactivación es reversible — el pool puede volver
a un estado funcional mediante activate() o recover().
Parámetros
Este método no acepta parámetros.
Valor de retorno
No se devuelve ningún valor.
Ejemplos
Ejemplo #1 Desactivación al detectar un problema
<?php
use Async\Pool;
$pool = new Pool(
factory: fn() => new HttpClient('https://api.example.com'),
max: 10
);
// Al detectar un error crítico
try {
$client = $pool->acquire();
$response = $client->get('/critical-endpoint');
$pool->release($client);
} catch (ServiceUnavailableException $e) {
$pool->deactivate();
echo "Servicio no disponible, pool desactivado\n";
}
Ejemplo #2 Mantenimiento planificado
<?php
use Async\Pool;
function startMaintenance(Pool $pool): void
{
$pool->deactivate();
echo "Pool desactivado para mantenimiento\n";
}
function endMaintenance(Pool $pool): void
{
$pool->activate();
echo "Mantenimiento completado, pool activado\n";
}
Ver también
- Pool::activate — Transición al estado ACTIVE
- Pool::recover — Transición al estado RECOVERING
- Pool::getState — Estado actual
- Pool::close — Cierre permanente del pool (irreversible)