搜索

首页  >  问答  >  正文

在多个路由中声明的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粉517475670260 天前741

全部回复(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
  • 取消回复