我希望找到一個有workerpool的node.js系統來處理CPU密集型任務,但是 對於多條路由中的 cpu 使用情況,我有些困惑。 一個場景是這樣的:
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.......
當node.js使用這三個檔案時,它們會建立自己的workerpool,並且 由於worker_thread號及其控制是透過node.js內部實現的,這是否可能 創建門檻問題?以及如何正確使用workerpool,非常感謝。
P粉9094764572024-04-07 15:06:31
我要做的就是只有一組工人。 Worker 可以公開多個函數,因此您的 Worker 可以毫無問題地公開 job1、job2 和 job3。如果您為每個池建立一個池,則需要考慮池可能會相互衝突...
考慮您的池獲得 100% 的 CPU,這意味著如果所有 3 個池都已滿,您最多可以需要 300% 的可用資源。
如果您為它們分別分配了 33%,這意味著您最多可以要求 100%,這很好,但如果一次只有 job1 被大量需要,它將只能使用 33% 的可用資源。
透過使用單一池,您可以達到 100%,而無需超過 100% 的可用空間。