Pool::deactivate

(PHP 8.6+, True Async 1.0)

public Pool::deactivate(): void

Принудительно переводит пул в состояние INACTIVE. В этом состоянии пул отклоняет все запросы на получение ресурсов. Используется для ручной деактивации при обнаружении проблем с внешним сервисом.

В отличие от close(), деактивация обратима — пул можно вернуть в рабочее состояние через activate() или recover().

Параметры

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

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

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

Примеры

Пример #1 Деактивация при обнаружении проблемы

<?php

use Async\Pool;

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

// При обнаружении критической ошибки
try {
    $client = $pool->acquire();
    $response = $client->get('/critical-endpoint');
    $pool->release($client);
} catch (ServiceUnavailableException $e) {
    $pool->deactivate();
    echo "Сервис недоступен, пул деактивирован\n";
}

Пример #2 Плановое обслуживание

<?php

use Async\Pool;

function startMaintenance(Pool $pool): void
{
    $pool->deactivate();
    echo "Пул деактивирован для обслуживания\n";
}

function endMaintenance(Pool $pool): void
{
    $pool->activate();
    echo "Обслуживание завершено, пул активирован\n";
}

См. также