Pool::activate

(PHP 8.6+, True Async 1.0)

public Pool::activate(): void

Принудительно переводит пул в состояние ACTIVE. Ресурсы снова доступны для выдачи. Используется для ручного управления Circuit Breaker, например, после подтверждения восстановления сервиса.

Параметры

Метод не принимает параметров.

Возвращаемые значения

Функция не возвращает значения.

Примеры

Пример #1 Ручная активация после проверки

<?php

use Async\Pool;
use Async\CircuitBreakerState;

$pool = new Pool(
    factory: fn() => new HttpClient('https://api.example.com'),
    max: 5
);

// Предположим, пул был деактивирован
if ($pool->getState() === CircuitBreakerState::INACTIVE) {
    // Проверяем доступность сервиса вручную
    if (checkServiceHealth('https://api.example.com/health')) {
        $pool->activate();
        echo "Пул активирован\n";
    }
}

Пример #2 Активация по внешнему сигналу

<?php

use Async\Pool;

// Обработчик webhook от системы мониторинга
function onServiceRestored(Pool $pool): void
{
    $pool->activate();
    echo "Сервис восстановлен, пул активирован\n";
}

См. также