Heim  >  Artikel  >  PHP-Framework  >  So erstellen Sie einen Arbeiter in Swoole

So erstellen Sie einen Arbeiter in Swoole

尚
Original
2020-01-13 13:30:522333Durchsuche

So erstellen Sie einen Arbeiter in Swoole

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.

So erstellen Sie einen Arbeiter in Swoole

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!

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