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 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

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