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";
}
См. также
- Pool::activate — Перевести в состояние ACTIVE
- Pool::recover — Перевести в состояние RECOVERING
- Pool::getState — Текущее состояние
- Pool::close — Полное закрытие пула (необратимо)