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

如何配置Skyve中Persistence SQL查询的超时时间?

Skyve平台Persistence查询超时配置说明

Skyve原生支持Persistence层SQL查询超时配置,可根据业务场景从全局、单查询两个粒度调整参数,具体操作如下:

  • 全局默认超时配置
    全局配置对所有通过Skyve Persistence API发起的SQL、JPQL查询生效,配置位于项目src/main/resources目录下的skyve.json文件的persistence配置段,调整queryTimeoutInSeconds参数即可,参数单位为秒,框架默认值为30。
    配置示例:
    {
      "persistence": {
        "dialect": "org.skyve.impl.persistence.hibernate.dialect.PostgreSQLSpatialDialect",
        "queryTimeoutInSeconds": 60,
        // 其余持久化配置项保持原有赋值即可
      }
    }
    
    注意:不建议将该参数设置为0(即关闭查询超时限制),长时间占用数据库连接可能引发连接池耗尽、数据库负载过高等问题。本地开发环境如果只是临时跑批量数据处理、复杂统计类慢查询,优先用单查询粒度配置,不要盲目拉高全局超时阈值,避免后续发布时将开发环境的宽松配置带到生产。
  • 单查询自定义超时
    若仅个别查询需要更长执行时间,无需修改全局配置,可在构造查询实例时通过setTimeout()方法单独指定当前查询的超时时间,单位为秒,该配置优先级高于全局默认值。
    代码示例:
    Persistence persistence = CORE.getPersistence();
    // 给特定慢查询单独设置3分钟执行超时
    DocumentQuery batchStatQuery = persistence.newDocumentQuery("app", "OperationLog")
      .addFilter(new FilterOperator(...) )
      .setTimeout(180);
    List<Bean> queryResult = batchStatQuery.beanResults();
    
  • 开发环境超时排查补充
    如果调整上述平台侧参数后仍触发超时异常,需同步排查本地开发环境的两类关联配置:
    1. 数据库自身的语句执行超时限制,如MySQL的max_execution_time参数、PostgreSQL的statement_timeout参数
    2. Skyve默认集成的HikariJDBC连接池超时参数,配置位于skyve.json的datasource配置段,需保证连接池的连接最大持有时长不短于设置的查询超时阈值,避免查询还未执行完就被连接池强制回收。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:15:42