登录
注册
node.js 学习社区
nodejs 多进程 Session 共享问题探讨

飞矢无动

2014-12-01 02:48

nodejs 用 cluster 模块实现多进程 启动,刚开始 心喜

if (cluster.isMaster) {
	var numCPUs = require('os').cpus().length;
	var data = 0;
	// 启动多个进程.
	for (var i = 0; i < numCPUs; i++) {
		//增加一个进程
		var worker_process = cluster.fork();
		//侦听子进程的message事件
		worker_process.on('message', function(msg) {
			if (msg.cmd && msg.cmd == 'notifyRequest') {
				data++;
				console.log('DATA VALUE : %d ', data);
			}
		});
	}
} else {
	process.send({ cmd: 'notifyRequest' });
	http.createServer(app).listen(app.get('port'), function () {
		console.log("Web server listening on port " + app.get('port'));
	});
}

多进程起动 参考官网代码

因为 Session 无法 在多进程 之间共享的问题,造成系统Session登录后台无法 共享

后台经过 google baidu 终于 找到了解决办法

把 Session 用 redis 来存储

var RedisStore = require('connect-redis')(express);
app.use(express.session({
    secret:'xxz',
    store:new RedisStore(),
    key:'express.sid'
}));

最后终于搞定希望对大家有所帮助 哈哈

原文引自:http://cnodejs.org/topic/51d1446973c638f370ad4eec

回复 · 0

发表回复

你可以在回复中 @ 其他人