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