Heim  >  Artikel  >  PHP-Framework  >  So verlassen Sie Swoole

So verlassen Sie Swoole

尚
Original
2020-01-13 14:42:352818Durchsuche

So verlassen Sie Swoole

Server->stop

stoppt den aktuellen Worker-Prozess und löst sofort die Rückruffunktion onWorkerStop aus.

function Server->stop(int $worker_id = -1, bool $waitEvent = false);

Verwenden Sie diese Funktion anstelle von „exit/die“, um den Lebenszyklus des Worker-Prozesses zu beenden.

$waitEvent kann die Exit-Strategie steuern. Der Standardwert ist „false“, um sofort zu beenden, und wird auf „true“ gesetzt warten, bis die Ereignisschleife leer ist. Dann beenden

Wenn Sie andere Worker-Prozesse beenden möchten, können Sie worker_id als Parameter in stop hinzufügen oder swoole_process::kill($worker_pid)

Diese Methode ist in 1.8.2 oder in späteren Versionen verfügbar

$waitEvent ist in 1.9.19 oder späteren Versionen verfügbar

Asynchroner Exit

Der asynchrone Server wird nach dem Aufruf von stop beendet. Während der Prozess ausgeführt wird, können noch Ereignisse warten. Beispielsweise wird SwooleMySQL->query zum Senden der SQL-Anweisung verwendet, wartet jedoch immer noch darauf, dass der MySQL-Server das Ergebnis zurückgibt. Wenn der Prozess zu diesem Zeitpunkt beendet werden muss, gehen die SQL-Ausführungsergebnisse verloren.

Nachdem $waitEvent = true gesetzt wurde, verwendet die zugrunde liegende Ebene eine asynchrone sichere Neustartstrategie. Benachrichtigen Sie zunächst den Manager-Prozess und starten Sie einen neuen Worker neu, um neue Anfragen zu bearbeiten. Der aktuelle alte Worker wartet auf Ereignisse, bis die Ereignisschleife leer ist oder max_wait_time überschreitet, und verlässt dann den Prozess, um die Sicherheit asynchroner Ereignisse weitestgehend zu gewährleisten.

Empfohlenes Lernen:

Swoole-Tutorial

Das obige ist der detaillierte Inhalt vonSo verlassen Sie Swoole. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn