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
);
// Upon detecting a critical error
try {
$client = $pool->acquire();
$response = $client->get('/critical-endpoint');
$pool->release($client);
} catch (ServiceUnavailableException $e) {
$pool->deactivate();
echo "Service unavailable, pool deactivated\n";
}
Приклад #2 Планове технічне обслуговування
<?php
use Async\Pool;
function startMaintenance(Pool $pool): void
{
$pool->deactivate();
echo "Pool deactivated for maintenance\n";
}
function endMaintenance(Pool $pool): void
{
$pool->activate();
echo "Maintenance complete, pool activated\n";
}
Дивіться також
- Pool::activate — Перехід у стан ACTIVE
- Pool::recover — Перехід у стан RECOVERING
- Pool::getState — Поточний стан
- Pool::close — Остаточне закриття пулу (незворотне)