连接池用尽时,新查询会如何处理?

时间:2019-07-04 19:37:19

标签: mysql node.js connection-pooling pool

我正在使用Node.js和MySQL开发后端。有时,对于> 50,000的数据库,需要执行大量查询,而我正在使用连接池。我的问题是,由于池已用尽而被拒绝的查询将如何处理?是否将其排队直到连接可用然后执行?还是根本就不会执行?

确实存在类似的问题,但是答案并没有突出我的意思,他们只是建议增加限制大小。

1 个答案:

答案 0 :(得分:1)

也许。

可以设置一些选项来修改行为。参见https://github.com/mysqljs/mysql#pool-options

请求可以在队列中等待空闲连接,也可以不等待。这基于选项waitForConnections。如果将此选项设置为false,则请求将立即返回错误,而不是等待。

如果已经等待超过queueLimit个请求,则新请求将立即返回错误。默认值为0,表示队列没有限制。

请求将最多等待acquireTimeout毫秒,然后,如果仍然无法获得免费连接,则会返回错误。

附言:我不使用Node.js,我只是在文档中阅读了此内容。