在我的应用程序中,我有一个数据库,代码将定期连接到该数据库,但它很少使用(可能每天/每周一次)。
我可以在模块(应用程序)初始化时创建连接,然后在应用程序运行生命周期时跨模块使用它吗?
var conn = mongoose.createConnection(process.env.SOME_DB)
Run Code Online (Sandbox Code Playgroud)
我不确定我是否应该有猫鼬文档中建议的保持活动选项:
options.server.socketOptions = options.replset.socketOptions = { keepAlive: 1 };
mongoose.connect(uri, options);
Run Code Online (Sandbox Code Playgroud)
或者标准的自动重新连接功能就足够了?
我也不是什么“长时间运行的应用程序”?实际上,任何实时服务都是长时间运行的应用程序,是否应该为生产中的所有此类服务启用保持活动状态?
也不确定什么是连接池以及它们如何影响。
Mongoose 文档中有对此的引用:
http://mongoosejs.com/docs/connections.html
是的,这通常是个好主意。
该文档中还解释了连接池。但一般来说,Mongoose 会保持多个对服务器/副本集/mongos 实例开放的套接字连接,而不是一个以允许并发处理请求。是的,即使在 IO 上进行异步回调,也会有等待时间,因此连接池允许另一个通道在一个通道繁忙时进行通话。
是的,这通常是个好主意。
| 归档时间: |
|
| 查看次数: |
7783 次 |
| 最近记录: |