Node.js child_process.fork()在不同的CPU核心上运行

时间:2013-08-07 14:50:28

标签: node.js fork multiprocessing

我有一个运行长期执行进程的应用程序。为了加快速度,我会对数据进行简单的分片,并希望并行运行它们,只需通过.fork()相同应用程序的2个实例。

我在那里有2台核心机器,并希望确保使用2个核心,第一个实例在第一个核心上运行,第二个核心在第二个核心上运行。

我知道cluster模块,但在这种情况下似乎不相关,因为我不需要运行HTTP服务并在它们之间进行负载平衡。只是工人(意思是,他们不需要彼此沟通,发送消息或其他 - 他们只是做HTTP请求并将数据存储到数据库)。

是否有可能控制node.js进程采用哪个CPU核心?如何在Mac / Linux上监控?

2 个答案:

答案 0 :(得分:3)

群集模块正是您所需要的:http://nodejs.org/api/cluster.html

答案 1 :(得分:0)

您想要这个,这是群集API的特定部分:

cluster.setupMaster([settings])

https://nodejs.org/api/cluster.html#cluster_cluster_setupmaster_settings

我还写了一个模块来执行此操作,其中有几个:

https://www.npmjs.com/package/poolio

我的模块运行良好,但API并不那么简单,所以我建议使用核心模块