Pool::recover
(PHP 8.6+, True Async 1.0)
public Pool::recover(): void
Transiciona el pool al estado RECOVERING. En este estado, el pool permite
que un número limitado de solicitudes pasen para verificar la disponibilidad del servicio.
Si las solicitudes tienen éxito, el Circuit Breaker transiciona automáticamente
el pool al estado ACTIVE. Si las solicitudes siguen fallando,
el pool vuelve a INACTIVE.
Parámetros
Este método no acepta parámetros.
Valor de retorno
No se devuelve ningún valor.
Ejemplos
Ejemplo #1 Intento de recuperación
<?php
use Async\Pool;
use Async\CircuitBreakerState;
$pool = new Pool(
factory: fn() => new HttpClient('https://api.example.com'),
max: 10
);
// El pool está desactivado, intentar recuperar
if ($pool->getState() === CircuitBreakerState::INACTIVE) {
$pool->recover();
echo "Pool transicionado al modo de recuperación\n";
// El Circuit Breaker permitirá que pasen solicitudes de prueba
}
Ejemplo #2 Intentos periódicos de recuperación
<?php
use Async\Pool;
use Async\CircuitBreakerState;
spawn(function() use ($pool) {
while (!$pool->isClosed()) {
if ($pool->getState() === CircuitBreakerState::INACTIVE) {
$pool->recover();
}
suspend(delay: 10000); // verificar cada 10 segundos
}
});
Ver también
- Pool::activate — Activación forzada
- Pool::deactivate — Desactivación forzada
- Pool::getState — Estado actual
- Pool::setCircuitBreakerStrategy — Configurar la estrategia