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'
}));
最后终于搞定希望对大家有所帮助 哈哈
额。。
嗯…
代码样式..
有代码的话用 ``` 包围吧
请问怎么使用sqlserver保存session
不好意思,我没有那个环境,没有用过!!
共享的话肯定需要持久存储… npm 上面很多… mongo 存储 (npm mongo-session) 可以试试…
具体例子可以看这里 https://github.com/rajaraodv/redispubsub
两个不同的app.js之间怎么用redis啊
@gengdaoping 只要配好redis就可以用啦 connect-redis
redis是不错的多进程共享方案。其实如果session信息不多的话也可以考虑记cookie 自豪地采用 CNodeJS ionic
@njaulj为什么配置到最后req.session为undefined
mark