Node.js + Oracle - 在每次请求后保持连接打开或关闭?

时间:2013-10-17 05:38:31

标签: database oracle node.js

我有一个使用Node.js&的Web应用程序。与Oracle数据库的连接。

目前,Node和DB之间的架构使用一个保持打开的连接。问题是某些查询需要很长时间才能返回,从而阻止后续查询直到第一次返回。

如果我在每个请求上打开一个新连接,则不会发生,后续查询将在第一个(长)请求之前返回。

问题是什么是最佳做法?每个请求是否值得在回调时关闭数据库的新连接,我应该优先考虑我知道的查询,以便在他们自己的连接上花费大量时间,或者单个连接是否正确?

非常感谢你的想法。

1 个答案:

答案 0 :(得分:3)

您可以使用generic-pool模块,它是通用资源池,可以重复使用昂贵的资源,例如数据库连接

一般的想法是您创建一个具有一定数量连接的连接池(默认为10)。 连接被重用,它们将保持一定的最大空闲时间(默认为30秒)。

我将这个模块用于生产中的Oracle数据库,到目前为止没有发现任何问题。