首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >异步块中未发布的Hikari CP DB连接

异步块中未发布的Hikari CP DB连接
EN

Stack Overflow用户
提问于 2022-09-13 11:46:00
回答 1查看 153关注 0票数 0

我使用Spring应用程序,它有API控制器来生成报告。实际的服务函数包装在@异步注释周围,函数进行DB调用并生成csv报告。我还使用Hikari进行连接池管理,使用JPA + QueryDSL形成select查询。

我看到了奇怪的问题,在成功生成文件之后,数据库连接没有被释放。每次对控制器/服务函数的新调用都会创建新的活动连接,并且保持活动状态。它没有得到释放,因为我得到连接是不可用的错误,从Hikari,一旦我的最大池大小限制达到。

任何不释放连接的建议。服务函数只发出选择查询,不进行更新或插入。

Hikari CP透露:

代码语言:javascript
运行
复制
spring.datasource.hikari.maximum-pool-size: "80"
spring.datasource.hikari.idle-timeout: "300000"
spring.datasource.hikari.connectionTimeout: "600000"
spring.datasource.hikari.minimum-idle: "15"

我的服务职能

代码语言:javascript
运行
复制
@Async
@Override
public void exportListing(String[] filter) {
        try {
}
catch(Exception e)
{
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-13 12:49:34

我通过将它封装在@Transactional块中来修复它,这样可以确保DB连接在函数完成后被关闭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73702441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档