J'espérais trouver un système node.js avec un pool de travail pour gérer les tâches gourmandes en CPU, mais Je suis un peu confus quant à l'utilisation du processeur sur plusieurs routes. Une scène ressemble à ceci :
route1.js: const workerpool = require('workerpool'); const pool = workerpool.pool(__dirname + '/job1.js'); pool.exec....... route2.js: const workerpool = require('workerpool'); const pool = workerpool.pool(__dirname + '/job2.js'); pool.exec....... route3.js: const workerpool = require('workerpool'); const pool = workerpool.pool(__dirname + '/job3.js'); pool.exec.......
Lorsque node.js utilise ces trois fichiers, ils créent leur propre pool de travailleurs et Est-ce possible puisque le numéro worker_thread et son contrôle sont implémentés en interne via node.js Créer un problème de seuil ? Et comment utiliser correctement Workerpool, merci beaucoup.
Tout ce que je veux, c'est n'avoir qu'un seul groupe de travailleurs. Un Worker peut exposer plusieurs fonctions, de sorte que votre Worker peut exposer job1, job2 et job3 sans aucun problème. Si vous créez un pool par pool, vous devez considérer que les pools peuvent entrer en conflit les uns avec les autres...
Considérez que vos pools reçoivent 100 % de CPU, ce qui signifie que si les 3 pools sont pleins, vous pouvez avoir besoin de jusqu'à 300 % des ressources disponibles.
Si vous allouez 33 % à chacun d'eux, cela signifie que vous pouvez demander jusqu'à 100 %, ce qui est bien, mais si seul le travail 1 est fortement nécessaire à la fois, il ne pourra utiliser que 33 % des ressources disponibles. .
En utilisant une seule piscine, vous pouvez atteindre 100% sans dépasser 100% de l'espace disponible.