瀏覽代碼

dataceter缓存清除

guq 7 年之前
父節點
當前提交
cb30827252

+ 7 - 0
base-servers/datacenter/datacenter-client/src/main/java/com/usoftchina/saas/dc/client/interceptor/DataSourceInterceptor.java

@@ -8,6 +8,8 @@ import com.usoftchina.saas.dc.dto.DataSourceInfoDTO;
 import com.usoftchina.saas.jdbc.DynamicDataSourceContextHolder;
 import com.usoftchina.saas.jdbc.DynamicDataSourceRegister;
 import com.usoftchina.saas.utils.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.lang.Nullable;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -24,6 +26,8 @@ public class DataSourceInterceptor extends HandlerInterceptorAdapter {
     @Autowired
     private DynamicDataSourceRegister dataSourceRegister;
 
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         long companyId = BaseContextHolder.getCompanyId();
@@ -33,7 +37,10 @@ public class DataSourceInterceptor extends HandlerInterceptorAdapter {
             // 该公司绑定到了指定数据中心
             if (StringUtils.hasText(dcName)) {
                 String dbName = dataSourceRegister.getDefaultDatabaseName();
+                DataSourceCache.of(dcName, dbName).hdel();
                 DataSourceInfoDTO dataSourceInfoDTO = DataSourceCache.of(dcName, dbName).getDataSourceInfo();
+                logger.info("DbName={} hostname={} DbRealName={}", dataSourceInfoDTO.getDbName(), dataSourceInfoDTO.getDbHost(),
+                        dataSourceInfoDTO.getDbRealName());
                 if (null != dataSourceInfoDTO) {
                     // 如果不存在数据源则自动创建
                     dataSourceRegister.createDataSource(dataSourceInfoDTO);

+ 4 - 0
framework/core/src/main/java/com/usoftchina/saas/jdbc/DynamicDataSourceRegister.java

@@ -1,6 +1,8 @@
 package com.usoftchina.saas.jdbc;
 
 import com.zaxxer.hikari.HikariDataSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
 import org.springframework.boot.jdbc.DataSourceBuilder;
 
@@ -12,6 +14,7 @@ public class DynamicDataSourceRegister {
     private DataSourceProperties defaultProperties;
     private final String defaultDatabaseName;
     private DynamicDataSource dynamicDataSource;
+    private Logger logger = LoggerFactory.getLogger(getClass());
 
     public DynamicDataSourceRegister(DataSourceProperties defaultProperties, DynamicDataSource dynamicDataSource) {
         this.defaultProperties = defaultProperties;
@@ -21,6 +24,7 @@ public class DynamicDataSourceRegister {
 
     public void createDataSource(Connectable connectable) {
         if (!dynamicDataSource.containsDataSource(connectable.qualifier())) {
+            logger.info("connectable:" + connectable);
             HikariDataSource dataSource = DataSourceBuilder.create(defaultProperties.getClassLoader())
                     .type(HikariDataSource.class)
                     .driverClassName(defaultProperties.determineDriverClassName())