This commit is contained in:
2023-06-15 09:50:19 +08:00
parent d9f50d5c32
commit a7ee9eadba

View File

@ -65,11 +65,12 @@ public class DatasourceConnectionMonitor {
}
log.error("租户[{}]-目前主数据源异常, 开始切换备用数据源", tenantId);
// 关闭原有异常数据源
connection.close();
dataSource.close();
// 主数据源异常 切换备用数据源
changePrimary(tenantId);
if (changePrimary(tenantId)) {
// 备用切换成功, 关闭原有异常数据源
dataSource.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
@ -102,11 +103,12 @@ public class DatasourceConnectionMonitor {
*
* @param tenantId 租户ID
*/
private void changePrimary(String tenantId) {
private Boolean changePrimary(String tenantId) {
// 备用数据源
List<DynamicDataSource> dataSources = DynamicDataSourceConfig.BACKUP_DATASOURCE_MAP.get(tenantId);
if (Objects.isNull(dataSources)) {
log.error("租户:[{}]切换备用数据源失败, 原因: 没有备用数据源", tenantId);
return false;
}
Integer backupIndex = null;
@ -131,8 +133,10 @@ public class DatasourceConnectionMonitor {
// 备用数据源集合删除该数据源
dataSources.remove((int) backupIndex);
log.info("租户:[{}]切换备用数据源成功, 现主数据ID: {}", tenantId, dynamicDataSource.getDatasourceId());
return true;
} else {
log.error("租户:[{}]切换备用数据源失败, 原因: 备用数据源均无效", tenantId);
return false;
}
}
}