我有一个运行长期执行进程的应用程序。为了加快速度,我会对数据进行简单的分片,并希望并行运行它们,只需通过.fork()相同应用程序的2个实例。
我在那里有2台核心机器,并希望确保使用2个核心,第一个实例在第一个核心上运行,第二个核心在第二个核心上运行。
我知道cluster
模块,但在这种情况下似乎不相关,因为我不需要运行HTTP服务并在它们之间进行负载平衡。只是工人(意思是,他们不需要彼此沟通,发送消息或其他 - 他们只是做HTTP请求并将数据存储到数据库)。
是否有可能控制node.js进程采用哪个CPU核心?如何在Mac / Linux上监控?
答案 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并不那么简单,所以我建议使用核心模块