You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mapepire连接池调用getReadyJob()返回undefined问题求助

Mapepire连接池getReadyJob返回undefined问题排查

问题重现

创建连接池的代码:

pool = new mapepire.Pool({creds: creds, opts: jdbcOptionsConfig, startingSize: 5, maxSize: 12});
await pool.init();

调用获取可用连接的代码:

const job = await pool.getReadyJob(); 

出现的异常现象:

  • job 返回 undefined
  • pool.jobs.length 显示为5(与设置的初始连接数一致)
  • 没有新的连接(job)被创建

排查与解决方向

  • 检查初始连接的就绪状态:遍历pool.jobs查看每个job的具体状态,确认是否存在未成功初始化、处于非就绪状态的连接。比如部分连接可能因配置错误、网络问题创建后无法正常使用,导致没有可用的ready job。
  • 验证getReadyJob的调用逻辑:确认该方法是否需要传入超时等参数,若所有初始连接都被占用或处于不可用状态,是否会直接返回undefined而非等待。可以尝试添加超时配置,或查看方法的官方文档(本地文档或源码注释)确认预期行为。
  • 单独测试单个连接:跳过连接池,直接创建单个Mapepire连接并测试是否能正常工作,排除creds、jdbcOptionsConfig等配置错误导致的连接不可用问题。
  • 检查连接占用情况:确认是否有其他业务逻辑已经占用了所有初始连接,导致getReadyJob无可用连接返回。可以查看每个job的inUse或类似状态属性。
  • 查看初始化阶段的错误:pool.init()虽然使用了await,但可能部分连接初始化失败时没有抛出全局错误,需要查看是否有局部错误日志或异常信息,排查连接创建失败的原因。

内容的提问来源于stack exchange,提问作者Didier68

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 12:42:04