如何为Quarkus应用配置MySQL数据库查询超时?
配置Quarkus(2.5.4.Final)MySQL查询超时的正确方式
针对你遇到的配置项被忽略的问题,以下是在application.yml中配置查询超时的有效方案,分为JPA/Hibernate全局查询超时和JDBC层面语句超时两种场景:
1. JPA/Hibernate全局查询超时
该配置会作用于所有通过JPA/Hibernate执行的查询,单位为毫秒:
quarkus: hibernate-orm: properties: javax.persistence.query.timeout: 5000 # 5秒超时
你之前的配置错误使用了quarkus.datasource.db-kind.properties前缀,正确的前缀是quarkus.hibernate-orm.properties,这也是之前配置被忽略的核心原因。
2. JDBC层面Statement超时
该配置会作用于所有通过JDBC驱动执行的SQL语句(包括JPA底层执行的语句),单位为秒:
方式一:使用Quarkus原生配置项
quarkus: datasource: jdbc: statement-timeout: 5 # 5秒超时
方式二:通过MySQL驱动属性配置
quarkus: datasource: jdbc: additional-properties: statementTimeout: 5 # 5秒超时
注意事项
- 两种配置可以同时存在,优先级上JDBC层面的超时会覆盖JPA的配置(JDBC是底层执行层)
- 避免使用Quarkus未定义的自定义配置项(比如你尝试过的
quarkus.datasource.mysql.query-timeout这类非标准键),这类配置会被直接忽略
内容的提问来源于stack exchange,提问作者Abhishek Pratap Singh
相关产品推荐
相关产品推荐

