我希望找到一个带有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% 的可用空间。