swoole ist ein Multiprozessmodell-Framework. Wenn eine Prozess-Swoole-Anwendung gestartet wird, werden insgesamt 2+n+m Prozesse erstellt, n ist die Anzahl der Worker-Prozesse. und m ist der TaskWorker-Prozess, ein Master-Prozess und ein Manager-Prozess. Die Beziehung ist wie in der folgenden Abbildung dargestellt.
Der Master-Prozess ist der Hauptprozess Erstellen Sie einen Manager-Prozess, einen Reaktor-Thread und andere Arbeitsprozesse/Threads.
Der Worker-Prozess dient als Arbeitsprozess von Swoole, und alle Geschäftslogikcodes werden auf diesem Prozess ausgeführt. Wenn der Reactor-Thread die Daten vom Client empfängt, verpackt er die Daten und sendet sie über eine Pipe an einen Worker-Prozess.
Die Worker-/Aufgabenprozesse in Swoole sind alle gegabelt und werden vom Manager-Prozess verwaltet.
Wenn der untergeordnete Prozess endet, ist der Managerprozess dafür verantwortlich, den untergeordneten Prozess wiederzuverwenden, um zu vermeiden, dass er zu einem Zombie-Prozess wird. Und erstellen Sie einen neuen Unterprozess
Wenn der Server heruntergefahren wird, sendet der Managerprozess Signale an alle Unterprozesse, um die Unterprozesse zu benachrichtigen, den Dienst herunterzufahren
Wenn der Wenn der Server neu geladen wird, fährt der Managerprozess die Unterprozesse nacheinander herunter/neu.
fork():
Ein Prozess, einschließlich Code, Daten und Ressourcen, die dem Prozess zugewiesen sind. Die Funktion fork() erstellt durch einen Systemaufruf einen Prozess, der nahezu identisch mit dem ursprünglichen Prozess ist. Das heißt, die beiden Prozesse können genau das Gleiche tun, aber wenn die Anfangsparameter oder übergebenen Variablen unterschiedlich sind, werden die beiden Prozesse ausgeführt kann auch verschiedene Dinge tun.
Nachdem ein Prozess die Funktion fork() aufruft, weist das System dem neuen Prozess zunächst Ressourcen zu, beispielsweise Speicherplatz zum Speichern von Daten und Code. Kopieren Sie dann alle Werte des ursprünglichen Prozesses in den neuen Prozess, mit Ausnahme einiger Werte, die sich von den Werten des ursprünglichen Prozesses unterscheiden. Es ist gleichbedeutend damit, sich selbst zu klonen.
Empfohlenes Lernen: Swoole-Tutorial
Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen Arbeiter in Swoole. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!