【问题标题】:how to initialize knex.js connection/pool如何初始化 knex.js 连接/池
【发布时间】:2020-12-07 18:10:53
【问题描述】:

我第一次调用 query/getData() 需要大约 40 秒的时间来响应。 第二次只需要一秒钟.. 所以假设它第一次初始化连接/池.. 如何在服务启动时强制它?

var knex = require('knex')({
  client: 'oracledb',
  connection: {
    user: ORACLE_USER,
    password: ORACLE_PWD,
    connectString: ORACLE_CONNECT_STRING
  },
  pool: {
    min: 4,
    max: 4,
    acquireTimeoutMillis: 100000,
    idleTimeoutMillis: 100000
  }
});

......

class DbHelper {
    getData(){
         return knex.raw(`SELECT ....

【问题讨论】:

    标签: javascript node.js oracle knex.js


    【解决方案1】:

    听起来您在连接数据库时遇到了一些问题...没有理由首次连接需要 40 秒才能完成。

    Knex 不做任何池初始化,但是当查询完成并且池中没有空闲连接时,它会分配一个新的连接,或者如果池已满,它会等待其他连接返回池.

    无论如何,如果您真的想在启动时填充池,您可以执行例如池最大并发查询量,然后池应该填充连接。

    【讨论】:

      猜你喜欢
      • 2018-04-25
      • 2018-09-10
      • 2015-08-17
      • 1970-01-01
      • 2013-01-12
      • 2015-04-08
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多