Tag: 多处理

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

我有一个运行长时间执行的进程的应用程序。 为了使它更快,我做了简单的数据分片,并且希望并行地运行它们,只需通过.fork()2个相同应用程序的实例。 我在那里有2个Cores机器,并且要确保2个Cores被利用,第一个实例在第一个核心上运行,第二个在第二个核心上运行。 我知道cluster模块,但在这种情况下似乎不相关,因为我不需要HTTP服务运行和它们之间的负载平衡。 只是工作人员(意思是说,他们不需要彼此沟通,发送消息或任何 – 他们只是做HTTP请求和存储数据到数据库)。 有没有可能控制node.js进程需要哪个CPU核心? 如何监视在Mac / Linux?

Nodejs集群和expressjs会话

我试图构buildnodejs应用程序,它将利用多核机器(又名集群),我有一个关于会议的问题。 我的代码如下所示: var cluster = exports.cluster = require('cluster'); var numCPUs = require('os').cpus().length; if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', function(worker, code, signal) { console.log('worker ' + worker.process.pid + ' died. Trying to respawn…'); cluster.fork(); }); } else { //spawn express etc } 我的问题是:每次单个用户点击随机节点实例,或者例如他第一次打开页面并击中节点N4,直到他的会话到期,他每次请求都击中节点N4? 对于那些不理解我的问题的人,我会试着解释我所担心的:用户进入我的页面,他在N3节点上login,然后将req.session.userdata设置为一个随机数据,他刷新页面,他击中节点N4,我将能够访问不同节点的req.session.userdata? 这意味着用户有机会随机注销,或者我只是不了解如何与快递作品集群?