Heim > Artikel > PHP-Framework > Kann Workerman in mehreren Prozessen ausgeführt werden?
Um die Leistung der Multi-CPU des Servers voll auszunutzen, unterstützt WorkerMan standardmäßig Multiprozess und Multitasking.
WorkerMan startet einen Hauptprozess und mehrere Unterprozesse, um externe Dienste bereitzustellen. Der Hauptprozess ist für die Überwachung der Unterprozesse verantwortlich. Die Unterprozesse überwachen unabhängig voneinander Netzwerkverbindungen und empfangen. Durch das einfache Prozessmodell wird WorkerMan stabiler und effizienter. (Empfohlenes Lernen: workerman-Tutorial )
Erstellen Sie einen Hauptprozess (Daemon-Prozess), der im Hintergrund ausgeführt wird eine lange Zeit, auch wenn es heruntergefahren wird.
Der Hauptthread fragt regelmäßig die Datenbank (MySQL) ab, sobald eine URL gefunden wird, die die Bedingungen erfüllt (möglicherweise mehrere). Es wird eine entsprechende Anzahl von untergeordneten Prozessen erstellt.
Der untergeordnete Prozess muss außerdem für eine lange Zeit vorhanden sein und regelmäßig den Server abfragen, der der URL entspricht, um Daten abzurufen.
Sobald der untergeordnete Prozess abgerufen wird Wenn Sie die erforderlichen Daten eingeben, speichert es die Ergebnisse in der Datenbank und beendet sich selbst (oder wird vom Hauptprozess geschlossen).
Grundsätze zum Festlegen der Anzahl der Prozesse
1. Die Summe des von jedem Prozess belegten Speichers muss geringer sein als der Gesamtspeicher (im Allgemeinen belegt jeder Geschäftsprozess etwa 40 MB Speicher)
2 B. den allgemeinen Zugriff auf Speicher wie MySQL und Redis, die den Zugriff blockieren, kann die Anzahl der Prozesse erhöht werden, z. B. Konfigurieren auf das Dreifache der Anzahl der CPU-Kerne.
Wenn es im Geschäftsbetrieb viel Blockieren und Warten gibt, können Sie die Anzahl der Prozesse entsprechend erhöhen, zum Beispiel auf das Fünffache der Anzahl der CPU-Kerne oder sogar noch höher. Beachten Sie, dass nicht blockierende E/A CPU-intensiv und nicht E/A-intensiv sind.
3. Wenn es CPU-intensiv ist, d. h. es gibt keinen blockierenden E/A-Overhead im Unternehmen, wenn beispielsweise asynchrone E/A zum Lesen von Netzwerkressourcen verwendet wird und der Prozess nicht vom Unternehmen blockiert wird Code kann die Anzahl der Prozesse auf die gleiche Anzahl wie die Anzahl der CPU-Kerne eingestellt werden
Das obige ist der detaillierte Inhalt vonKann Workerman in mehreren Prozessen ausgeführt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!