背景
最近在业务开发的时候,遇到了一个场景,需要遍历数据库连接信息创建数据库连接,而原来我配置的DruidDataSource在创建数据库连接失败后会自动重试,且是无限重试。
而我期望的逻辑是,但创建数据库连接失败后,尝试几次依然失败就跳过该数据库,开始连接下一个数据库……
在查了一些资料后发现,实现起来很简单
只需要在实例化DruidDataSource之后,set相应的属性即可
(没错,Druid把你需要的都提前想到了并创建了对应的属性和方法)
解决方案
在实例化DruidDataSource之后,set两个属性,见下面代码注释
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setUrl(jdbcUrl);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
druidDataSource.setConnectionErrorRetryAttempts(3); // 失败后重连的次数
druidDataSource.setBreakAfterAcquireFailure(true); // 请求失败之后中断
druidDataSource.setMaxWait(5000);//最长等待时间(超时时间)--感谢qq_36273770指正