graceful_shutdown

(PHP 8.6+, True Async 1.0)

graceful_shutdown() — Ініціює плавне завершення роботи планувальника. Усі корутини отримують запит на скасування.

Опис

graceful_shutdown(?Async\AsyncCancellation $cancellationError = null): void

Запускає процедуру плавного завершення: усі активні корутини скасовуються, а застосунок продовжує працювати, поки вони не завершаться природним шляхом.

Параметри

cancellationError Необов’язкова помилка скасування, що передається корутинам. Якщо не вказано, використовується повідомлення за замовчуванням.

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

Не повертає значення.

Приклади

Приклад #1 Обробка сигналу завершення

<?php
use function Async\spawn;
use function Async\graceful_shutdown;
use Async\AsyncCancellation;

// Сервер, що обробляє запити
spawn(function() {
    // При отриманні сигналу — плавно завершити роботу
    pcntl_signal(SIGTERM, function() {
        graceful_shutdown(new AsyncCancellation('Server shutdown'));
    });

    while (true) {
        // Обробка запитів...
    }
});
?>

Примітки

Примітка: Корутини, створені після виклику graceful_shutdown(), будуть негайно скасовані.

Примітка: exit та die автоматично запускають плавне завершення.

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