浏览代码

check connector status

AE86 3 年之前
父节点
当前提交
1063467552

+ 3 - 3
dbsyncer-connector/src/main/java/org/dbsyncer/connector/ConnectorFactory.java

@@ -88,7 +88,7 @@ public class ConnectorFactory implements DisposableBean {
      */
      */
     public List<Table> getTable(ConnectorMapper config) {
     public List<Table> getTable(ConnectorMapper config) {
         Assert.notNull(config, "ConnectorMapper can not be null.");
         Assert.notNull(config, "ConnectorMapper can not be null.");
-        String type = config.getOriginalConfig().getConnectorType();
+        String type = config.getConnectorType();
         return getConnector(type).getTable(config);
         return getConnector(type).getTable(config);
     }
     }
 
 
@@ -149,7 +149,7 @@ public class ConnectorFactory implements DisposableBean {
     }
     }
 
 
     public Connector getConnector(ConnectorMapper connectorMapper) {
     public Connector getConnector(ConnectorMapper connectorMapper) {
-        return getConnector(connectorMapper.getOriginalConfig().getConnectorType());
+        return getConnector(connectorMapper.getConnectorType());
     }
     }
 
 
     /**
     /**
@@ -171,7 +171,7 @@ public class ConnectorFactory implements DisposableBean {
      */
      */
     private void disconnect(ConnectorMapper connectorMapper) {
     private void disconnect(ConnectorMapper connectorMapper) {
         Assert.notNull(connectorMapper, "ConnectorMapper can not be null.");
         Assert.notNull(connectorMapper, "ConnectorMapper can not be null.");
-        String type = connectorMapper.getOriginalConfig().getConnectorType();
+        String type = connectorMapper.getConnectorType();
         getConnector(type).disconnect(connectorMapper);
         getConnector(type).disconnect(connectorMapper);
     }
     }
 
 

+ 4 - 0
dbsyncer-connector/src/main/java/org/dbsyncer/connector/ConnectorMapper.java

@@ -17,6 +17,10 @@ public interface ConnectorMapper<K, V> {
         return (ConnectorConfig) getConfig();
         return (ConnectorConfig) getConfig();
     }
     }
 
 
+    default String getConnectorType() {
+        return getOriginalConfig().getConnectorType();
+    }
+
     K getConfig();
     K getConfig();
 
 
     V getConnection();
     V getConnection();

+ 2 - 0
dbsyncer-manager/src/main/java/org/dbsyncer/manager/Manager.java

@@ -48,6 +48,8 @@ public interface Manager extends Executor {
 
 
     List<Connector> getConnectorAll();
     List<Connector> getConnectorAll();
 
 
+    void checkAllConnectorStatus();
+
     // Mapping
     // Mapping
     String addMapping(ConfigModel model);
     String addMapping(ConfigModel model);
 
 

+ 16 - 0
dbsyncer-manager/src/main/java/org/dbsyncer/manager/ManagerFactory.java

@@ -1,5 +1,6 @@
 package org.dbsyncer.manager;
 package org.dbsyncer.manager;
 
 
+import org.dbsyncer.common.util.CollectionUtils;
 import org.dbsyncer.manager.event.ClosedEvent;
 import org.dbsyncer.manager.event.ClosedEvent;
 import org.dbsyncer.common.model.Paging;
 import org.dbsyncer.common.model.Paging;
 import org.dbsyncer.connector.ConnectorMapper;
 import org.dbsyncer.connector.ConnectorMapper;
@@ -119,6 +120,21 @@ public class ManagerFactory implements Manager, ApplicationListener<ClosedEvent>
         return connectors;
         return connectors;
     }
     }
 
 
+    @Override
+    public void checkAllConnectorStatus() {
+        List<Connector> list = getConnectorAll();
+        if (!CollectionUtils.isEmpty(list)) {
+            list.forEach(c -> {
+                try {
+                    refreshConnectorConfig(c.getConfig());
+                } catch (Exception e) {
+                    LogType.ConnectorLog logType = LogType.ConnectorLog.FAILED;
+                    logService.log(logType, "%s%s", logType.getName(), e.getMessage());
+                }
+            });
+        }
+    }
+
     @Override
     @Override
     public String addMapping(ConfigModel model) {
     public String addMapping(ConfigModel model) {
         return operationTemplate.execute(new OperationConfig(model, HandlerEnum.OPR_ADD.getHandler()));
         return operationTemplate.execute(new OperationConfig(model, HandlerEnum.OPR_ADD.getHandler()));

+ 5 - 2
dbsyncer-manager/src/main/java/org/dbsyncer/manager/template/impl/PreloadTemplate.java

@@ -102,7 +102,10 @@ public final class PreloadTemplate extends AbstractTemplate implements Applicati
         // Load plugins
         // Load plugins
         manager.loadPlugins();
         manager.loadPlugins();
 
 
-        // 启动驱动
+        // Check connectors status
+        manager.checkAllConnectorStatus();
+
+        // Launch drivers
         Meta meta = new Meta();
         Meta meta = new Meta();
         meta.setType(ConfigConstant.META);
         meta.setType(ConfigConstant.META);
         QueryConfig<Meta> queryConfig = new QueryConfig<>(meta);
         QueryConfig<Meta> queryConfig = new QueryConfig<>(meta);
@@ -113,7 +116,7 @@ public final class PreloadTemplate extends AbstractTemplate implements Applicati
                 if (MetaEnum.RUNNING.getCode() == m.getState()) {
                 if (MetaEnum.RUNNING.getCode() == m.getState()) {
                     Mapping mapping = manager.getMapping(m.getMappingId());
                     Mapping mapping = manager.getMapping(m.getMappingId());
                     manager.start(mapping);
                     manager.start(mapping);
-                }else if(MetaEnum.STOPPING.getCode() == m.getState()){
+                } else if (MetaEnum.STOPPING.getCode() == m.getState()) {
                     manager.changeMetaState(m.getId(), MetaEnum.READY);
                     manager.changeMetaState(m.getId(), MetaEnum.READY);
                 }
                 }
             });
             });