Heim > Artikel > PHP-Framework > So starten Sie Swoole neu
In swoole können wir verschiedene Signale an den Hauptprozess senden, und der Hauptprozess wird je nach Art des empfangenen Signals unterschiedlich damit umgehen.
Zum Beispiel die folgenden (empfohlenes Lernen: Swoole-Video-Tutorial)
1、kill -SIGTERM|-15 master_pid 终止Swoole程序,一种优雅的终止信号,会待进程执行完当前程序之后中断,而不是直接干掉进程 2、kill -USR1|-10 master_pid 重启所有的Worker进程 3、kill -USR2|-12 master_pid 重启所有的Task Worker进程
Wenn das USR1-Signal an den Master-Prozess gesendet wird, wird der Master-Prozess sendet dasselbe Das Signal wird über den Manager-Prozess an den Worker-Prozess weitergeleitet. Der Worker-Prozess, der dieses Signal empfängt, gibt den Prozessspeicher nach der Verarbeitung der ausgeführten Logik frei, fährt sich selbst herunter und startet dann einen neuen Worker Verfahren.
Der neue Worker-Prozess wird neuen Speicherplatz belegen.
Szenario:
Wenn es sich um ein Online-Projekt handelt, verarbeitet ein ausgelasteter Backend-Server jederzeit Anfragen, wenn der Administrator den Prozess beendet/neu startet, indem er den Server beendet Programme können dazu führen, dass der Code mitten in der Ausführung abbricht.
In diesem Fall kommt es zu Dateninkonsistenzen.
In einem Handelssystem ist der nächste Abschnitt der Zahlungslogik beispielsweise der Versand. Es wird davon ausgegangen, dass der Prozess nach der Zahlungslogik beendet wird. Dies führt dazu, dass der Benutzer die Währung bezahlt, die Ware jedoch nicht liefert, und die Folgen sind sehr schwerwiegend.
swoole bietet uns einen reibungslosen Neustartmechanismus. Wir müssen nur ein bestimmtes Signal an den Hauptprozess von swoole_server senden, um den Neustart des Servers abzuschließen.
Hinweise:
1. Das Update gilt nur für den Worker-Prozess und bedeutet, dass im Master-Prozess und im Manager-Prozess geschriebener Code aktualisiert wird . Es wird nicht wirksam, was bedeutet, dass ein Neustart nur für Dateien sinnvoll ist, die nach dem onWorkerStart-Rückruf geladen werden.
Eine Datei, die vor dem Start des Worker-Prozesses in den Speicher geladen wurde. Wenn Sie möchten, dass sie wieder wirksam wird, können Sie nur den Server schließen und neu starten.
2. Die direkt im Worker-Code geschriebene Logik wird nicht wirksam, selbst wenn ein entsprechendes Geschäftslogik-Code gesendet werden muss, um wirksam zu werden.
Das obige ist der detaillierte Inhalt vonSo starten Sie Swoole neu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!