graceful_shutdown
(PHP 8.6+, True Async 1.0)
graceful_shutdown() — Leitet ein kontrolliertes Herunterfahren des Schedulers ein. Alle Coroutinen erhalten eine Abbruchanforderung.
Beschreibung
graceful_shutdown(?Async\AsyncCancellation $cancellationError = null): void
Startet das kontrollierte Herunterfahren: Alle aktiven Coroutinen werden abgebrochen, und die Anwendung laeuft weiter, bis sie auf natuerliche Weise abgeschlossen sind.
Parameter
cancellationError
Ein optionaler Abbruchfehler, der an die Coroutinen uebergeben wird. Wenn nicht angegeben, wird eine Standardnachricht verwendet.
Rueckgabewerte
Kein Rueckgabewert.
Beispiele
Beispiel #1 Behandlung eines Beendigungssignals
<?php
use function Async\spawn;
use function Async\graceful_shutdown;
use Async\AsyncCancellation;
// Server, der Anfragen verarbeitet
spawn(function() {
// Bei Empfang eines Signals — kontrolliert herunterfahren
pcntl_signal(SIGTERM, function() {
graceful_shutdown(new AsyncCancellation('Server wird heruntergefahren'));
});
while (true) {
// Anfragen verarbeiten...
}
});
?>
Hinweise
Hinweis: Coroutinen, die nach dem Aufruf von
graceful_shutdown()erstellt werden, werden sofort abgebrochen.
Hinweis:
exitunddieloesen automatisch ein kontrolliertes Herunterfahren aus.
Siehe auch
- Cancellation — Abbruchmechanismus
- Scope — Lebenszyklus-Verwaltung