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: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!