数据库启动和节点js集群

时间:2015-08-10 05:36:15

标签: node.js mongodb

使用节点集群模块,可以相对轻松地启动子进程。例如:

var cluster = require('cluster');
if (cluster.isMaster) {
    var cpuNum = require('os').cpus().length;
    while (cpuNum--) cluster.fork();
} else {
    var app = require('http').http.createServer(/*[http.createServer]*/);
    //using mongo database, if the database is empty, then insert some default documents
    if (!db.find()) database.insert(/*some large documents*/)
    app.listen(3000);
}

当数据库为空时出现问题,第一个cluster.worker将执行db.find()然后插入一些文档。但是,第二个或后续工作人员也将执行db.find()并且什么也找不到,所以也会运行db.insert()。这导致文件重复。

在数据库启动期间使用节点群集时,如何防止(插入重复)?或者这与mongodb更相关?

0 个答案:

没有答案