Pool::setCircuitBreakerStrategy

(PHP 8.6+, True Async 1.0)

public Pool::setCircuitBreakerStrategy(?CircuitBreakerStrategy $strategy): void

Встановлює стратегію Circuit Breaker для пулу. Circuit Breaker відстежує доступність зовнішнього сервісу: при виявленні кількох збоїв пул автоматично переходить у стан INACTIVE, запобігаючи каскаду помилок. Коли сервіс відновлюється, пул повертається до активного стану.

Параметри

strategy
Об’єкт CircuitBreakerStrategy, що визначає правила переходу між станами. null — вимкнути Circuit Breaker.

Значення, що повертається

Значення не повертається.

Приклади

Приклад #1 Встановлення стратегії

<?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,       // after 5 errors — deactivate
    recoveryTimeout: 30000,    // after 30 seconds — attempt recovery
    successThreshold: 3        // 3 successful requests — full activation
);

$pool->setCircuitBreakerStrategy($strategy);

Приклад #2 Вимкнення Circuit Breaker

<?php

use Async\Pool;

// Disable the strategy
$pool->setCircuitBreakerStrategy(null);

Дивіться також