Sagen Sie, mein PC hat eine CPU mit 2 Kernen und meine node.js-Anwendung mit Express. Wie kann ich diese Anwendung auf 1 Kern und die gleiche Anwendung auf dem anderen Kern laufen lassen?Wie kann ich einen Node.js-Server auf verschiedenen CPU-Kernen ausführen oder ausführen?
0
A
Antwort
0
Nicovank
ist richtig. Sie sind an der Funktion cluster
interessiert. In NodeJS bekommen Sie die Anzahl der Kerne durch diesen Code:
const numCPUs = require('os').cpus().length;
entnehmen Sie bitte diesen Abschnitt der Dokumentation: https://nodejs.org/dist/latest-v7.x/docs/api/cluster.html#cluster_cluster. Die haben tolle Beispiele.
0
Hier ist ein einfaches Beispiel für einen Express-Server, der mit dem cluster Modul in mehreren Kernen ausgeführt wird.
const cluster = require('cluster');
//Get number of CPUs
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork one worker per core.
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
//Worker code...
const express = require('express');
const app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
// Bind to a port
app.listen(8080,() => {
console.log(`[PID=${process.pid}] server started!`);
});
}
Es gibt einige Module von Drittanbietern zu:
- Cluster2
- PM2 (Node-Prozess-Manager, der cluster mode hat)
- StrongLoop - strong-cluster-control
Sie können auch überprüfen :
Verwandte Themen
- 1. Code auf verschiedenen Untergruppen ausführen
- 2. Wie kann ich jbehave Tests mit verschiedenen Parametern ausführen?
- 3. Wie kann ich einen Docker Windows Container auf OSX ausführen?
- 4. Kann ich line_profiler über einen Pytest ausführen?
- 5. Kann ich Cuda oder Opencl auf Intel Iris ausführen?
- 6. Wie kann ich einen Xamarin.UITest von der Kommandozeile ausführen?
- 7. Kann ich Numpy (oder andere Python-Pakete) auf Android ausführen?
- 8. Kann OCMock einen Blockparameter ausführen?
- 9. Kann ich KiGG auf XP Pro ausführen?
- 10. Wie kann ich einen kontinuierlichen Hintergrundjob mit Sidekiq ausführen?
- 11. Wie kann ich com.apple.tools.info-plist-Dienstprogramm ausführen?
- 12. Wie kann ich einen externen Befehl asynchron von Python ausführen?
- 13. Wie kann Docker Distributionen mit verschiedenen Kernel ausführen?
- 14. Wie kann ich beim Ausführen einer neuen Datenbank Parameter ausführen()
- 15. Kann ich bitweise Operationen auf Byte [] ausführen?
- 16. Wie kann ich einen Shell-Befehl im Ansible-Prüfmodus ausführen?
- 17. Wie kann ich einen Befehl über Stapel von Dateien ausführen?
- 18. Wie kann ich einen bash-Befehl regelmäßig ausführen lassen?
- 19. Wie kann ich einen PHP ohne Webserver ausführen?
- 20. Wie kann ich einen Systembefehl in Perl asynchron ausführen?
- 21. Wie kann ich Ruby-Tests automatisch ausführen?
- 22. Wie kann ich HTML Code nicht ausführen?
- 23. Kann ich .jar-Datei auf Tomcat ausführen?
- 24. Ich kann Cassandra auf Kubernetes nicht ausführen
- 25. Wie sh shell script auf verschiedenen shellscsh/tcsh Shell ausführen?
- 26. Wie kann ich einen Shell-Befehl mit VBA ausführen?
- 27. Wie kann ich einen kleinen Befehl in einer Verbindungspipeline ausführen?
- 28. Wie kann ich einen Befehl still in VBScript ausführen?
- 29. Wie kann ich einen einzigen Android-Test mit Kotlin ausführen?
- 30. Wie kann ich in Python einen nicht blockierenden Systemanruf ausführen?
Siehe das native Clustermodul – nicovank