搜尋

首頁  >  問答  >  主體

在多個路由中聲明的workerpool是否仍然可以保持其cpu使用率而不關心閾值

我希望找到一個有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粉517475670P粉517475670226 天前672

全部回覆(1)我來回復

  • P粉909476457

    P粉9094764572024-04-07 15:06:31

    我要做的就是只有一組工人。 Worker 可以公開多個函數,因此您的 Worker 可以毫無問題地公開 job1、job2 和 job3。如果您為每個池建立一個池,則需要考慮池可能會相互衝突...

    考慮您的池獲得 100% 的 CPU,這意味著如果所有 3 個池都已滿,您最多可以需要 300% 的可用資源。

    如果您為它們分別分配了 33%,這意味著您最多可以要求 100%,這很​​好,但如果一次只有 job1 被大量需要,它將只能使用 33% 的可用資源。

    透過使用單一池,您可以達到 100%,而無需超過 100% 的可用空間。

    回覆
    0
  • 取消回覆