Pool::setCircuitBreakerStrategy
(PHP 8.6+, True Async 1.0)
public Pool::setCircuitBreakerStrategy(?CircuitBreakerStrategy $strategy): void
Establece la estrategia del Circuit Breaker para el pool. El Circuit Breaker monitorea
la disponibilidad de un servicio externo: al detectar múltiples fallos, el pool
transiciona automáticamente al estado INACTIVE, evitando una cascada de errores.
Cuando el servicio se recupera, el pool vuelve al estado activo.
Parámetros
- strategy
- Un objeto
CircuitBreakerStrategyque define las reglas para la transición entre estados.null— desactivar el Circuit Breaker.
Valor de retorno
No se devuelve ningún valor.
Ejemplos
Ejemplo #1 Establecer una estrategia
<?php
use Async\Pool;
use Async\CircuitBreakerStrategy;
$pool = new Pool(
factory: fn() => new HttpClient('https://api.example.com'),
destructor: fn(HttpClient $c) => $c->close(),
max: 10
);
$strategy = new CircuitBreakerStrategy(
failureThreshold: 5, // después de 5 errores — desactivar
recoveryTimeout: 30000, // después de 30 segundos — intentar recuperación
successThreshold: 3 // 3 solicitudes exitosas — activación completa
);
$pool->setCircuitBreakerStrategy($strategy);
Ejemplo #2 Desactivar el Circuit Breaker
<?php
use Async\Pool;
// Desactivar la estrategia
$pool->setCircuitBreakerStrategy(null);
Ver también
- Pool::getState — Estado actual del Circuit Breaker
- Pool::activate — Activación forzada
- Pool::deactivate — Desactivación forzada
- Pool::recover — Transición al modo de recuperación