很少使用的Mongoose连接(保持活着?)

时间:2014-02-07 03:50:49

标签: mongodb mongoose

在我的应用程序中,我有一个代码将定期连接的数据库,但它很少使用(可能每天一次/周)。

我可以创建只需连接模块(app)init,然后在应用程序运行生命周期的整个模块中使用它吗?

var conn = mongoose.createConnection(process.env.SOME_DB)

我不确定我是否应该按照mongoose docs中的建议使用保持活动选项:

options.server.socketOptions = options.replset.socketOptions = { keepAlive: 1 };
mongoose.connect(uri, options);

或标准的自动重新连接功能就足够了吗?

我也不是什么是“长期运行的应用程序”?实际上任何实时服务都是长期运行的应用程序,是否应该为生产中的所有此类服务启用?

还不确定什么是连接池以及它们如何影响。

1 个答案:

答案 0 :(得分:4)

Mongoose文档中提到了这一点:

http://mongoosejs.com/docs/connections.html

是的,这通常是一个好主意。

同样在该文档中解释了连接池。但一般来说,Mongoose保持对服务器/副本集/ mongos实例开放多个套接字连接,而不是允许并发处理请求。是的,即使在IO上进行异步回叫也有等待时间,因此连接池允许另一个通道在一个忙时进行通话。

是的,这通常是一个好主意。