Pool::setCircuitBreakerStrategy
(PHP 8.6+, True Async 1.0)
php
public Pool::setCircuitBreakerStrategy(?CircuitBreakerStrategy $strategy): voidEstablece 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 CircuitBreakerStrategy que 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
<?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
<?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