You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/10/19 08:40:54 UTC

[shardingsphere-elasticjob] branch master updated: Add type of err handler (#1594)

This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git


The following commit(s) were added to refs/heads/master by this push:
     new 745ddf0  Add type of err handler (#1594)
745ddf0 is described below

commit 745ddf064ce47755b42ffe5b4f98c87df1828491
Author: Liang Zhang <te...@163.com>
AuthorDate: Mon Oct 19 16:36:40 2020 +0800

    Add type of err handler (#1594)
    
    * Add type of err handler
---
 .../elasticjob/error/handler/ErrorHandlerConfiguration.java |  7 +++++++
 .../error/handler/dingtalk/DingtalkConfiguration.java       |  5 +++++
 .../error/handler/dingtalk/DingtalkJobErrorHandler.java     |  2 +-
 .../elasticjob/error/handler/dingtalk/DingtalkType.java}    | 13 ++++++++-----
 .../elasticjob/error/handler/email/EmailConfiguration.java  |  5 +++++
 .../error/handler/email/EmailJobErrorHandler.java           |  2 +-
 .../elasticjob/error/handler/email/EmailType.java}          | 13 ++++++++-----
 .../error/handler/wechat/WechatConfiguration.java           |  5 +++++
 .../error/handler/wechat/WechatJobErrorHandler.java         |  2 +-
 .../elasticjob/error/handler/wechat/WechatType.java}        | 13 ++++++++-----
 .../elasticjob/executor/ElasticJobExecutor.java             |  8 +++++++-
 11 files changed, 56 insertions(+), 19 deletions(-)

diff --git a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
index 566939e..8e27ccc 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
@@ -23,4 +23,11 @@ import org.apache.shardingsphere.elasticjob.api.JobExtraConfiguration;
  * Error handler configuration.
  */
 public interface ErrorHandlerConfiguration extends JobExtraConfiguration {
+    
+    /**
+     * Get type.
+     * 
+     * @return type
+     */
+    String getType();
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfiguration.java
index be30415..60ec904 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfiguration.java
@@ -37,4 +37,9 @@ public final class DingtalkConfiguration implements ErrorHandlerConfiguration {
     private final int connectTimeoutMillisecond;
     
     private final int readTimeoutMillisecond;
+    
+    @Override
+    public String getType() {
+        return DingtalkType.TYPE;
+    }
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandler.java
index 010d2f0..a29d862 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandler.java
@@ -136,6 +136,6 @@ public final class DingtalkJobErrorHandler implements JobErrorHandler<DingtalkCo
     
     @Override
     public String getType() {
-        return "DINGTALK";
+        return DingtalkType.TYPE;
     }
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkType.java
similarity index 77%
copy from elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
copy to elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkType.java
index 566939e..1fd1dc3 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkType.java
@@ -15,12 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.error.handler;
-
-import org.apache.shardingsphere.elasticjob.api.JobExtraConfiguration;
+package org.apache.shardingsphere.elasticjob.error.handler.dingtalk;
 
 /**
- * Error handler configuration.
+ * Dingtalk type.
  */
-public interface ErrorHandlerConfiguration extends JobExtraConfiguration {
+public final class DingtalkType {
+    
+    /**
+     * Dingtalk type.
+     */
+    public static final String TYPE = "DINGTALK";
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfiguration.java
index 6f851e7..00e3649 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfiguration.java
@@ -49,4 +49,9 @@ public final class EmailConfiguration implements ErrorHandlerConfiguration {
     private final String bcc;
     
     private final boolean debug;
+    
+    @Override
+    public String getType() {
+        return EmailType.TYPE;
+    }
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
index d20fbb7..f5b2ed4 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
@@ -132,6 +132,6 @@ public final class EmailJobErrorHandler implements JobErrorHandler<EmailConfigur
     
     @Override
     public String getType() {
-        return "EMAIL";
+        return EmailType.TYPE;
     }
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailType.java
similarity index 77%
copy from elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
copy to elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailType.java
index 566939e..e181a95 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailType.java
@@ -15,12 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.error.handler;
-
-import org.apache.shardingsphere.elasticjob.api.JobExtraConfiguration;
+package org.apache.shardingsphere.elasticjob.error.handler.email;
 
 /**
- * Error handler configuration.
+ * Email type.
  */
-public interface ErrorHandlerConfiguration extends JobExtraConfiguration {
+public final class EmailType {
+    
+    /**
+     * Email type.
+     */
+    public static final String TYPE = "EMAIL";
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfiguration.java
index f6e844e..04f59bd 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfiguration.java
@@ -33,4 +33,9 @@ public final class WechatConfiguration implements ErrorHandlerConfiguration {
     private final int connectTimeoutMillisecond;
     
     private final int readTimeoutMillisecond;
+    
+    @Override
+    public String getType() {
+        return WechatType.TYPE;
+    }
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandler.java
index e92f2d8..a303f2c 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandler.java
@@ -106,6 +106,6 @@ public final class WechatJobErrorHandler implements JobErrorHandler<WechatConfig
     
     @Override
     public String getType() {
-        return "WECHAT";
+        return WechatType.TYPE;
     }
 }
diff --git a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatType.java
similarity index 77%
copy from elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
copy to elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatType.java
index 566939e..88fc858 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/ErrorHandlerConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatType.java
@@ -15,12 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.error.handler;
-
-import org.apache.shardingsphere.elasticjob.api.JobExtraConfiguration;
+package org.apache.shardingsphere.elasticjob.error.handler.wechat;
 
 /**
- * Error handler configuration.
+ * Wechat type.
  */
-public interface ErrorHandlerConfiguration extends JobExtraConfiguration {
+public final class WechatType {
+    
+    /**
+     * Wechat type.
+     */
+    public static final String TYPE = "WECHAT";
 }
diff --git a/elasticjob-executor/elasticjob-executor-kernel/src/main/java/org/apache/shardingsphere/elasticjob/executor/ElasticJobExecutor.java b/elasticjob-executor/elasticjob-executor-kernel/src/main/java/org/apache/shardingsphere/elasticjob/executor/ElasticJobExecutor.java
index 54c6e83..d33ef83 100644
--- a/elasticjob-executor/elasticjob-executor-kernel/src/main/java/org/apache/shardingsphere/elasticjob/executor/ElasticJobExecutor.java
+++ b/elasticjob-executor/elasticjob-executor-kernel/src/main/java/org/apache/shardingsphere/elasticjob/executor/ElasticJobExecutor.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.elasticjob.executor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.elasticjob.api.ElasticJob;
 import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
+import org.apache.shardingsphere.elasticjob.api.JobExtraConfiguration;
 import org.apache.shardingsphere.elasticjob.error.handler.ErrorHandlerConfiguration;
 import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
 import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandlerFactory;
@@ -84,6 +85,7 @@ public final class ElasticJobExecutor {
     /**
      * Execute job.
      */
+    @SuppressWarnings("unchecked")
     public void execute() {
         try {
             jobFacade.checkJobExecutionEnvironment();
@@ -191,7 +193,11 @@ public final class ElasticJobExecutor {
     }
     
     private Optional<ErrorHandlerConfiguration> findErrorHandlerConfiguration() {
-        return jobConfig.getExtraConfigurations().stream().filter(each -> each instanceof ErrorHandlerConfiguration).map(extraConfig -> (ErrorHandlerConfiguration) extraConfig).findFirst();
+        return jobConfig.getExtraConfigurations().stream().filter(this::isMatchErrorHandlerType).map(extraConfig -> (ErrorHandlerConfiguration) extraConfig).findFirst();
+    }
+    
+    private boolean isMatchErrorHandlerType(final JobExtraConfiguration extraConfig) {
+        return extraConfig instanceof ErrorHandlerConfiguration && ((ErrorHandlerConfiguration) extraConfig).getType().equals(jobConfig.getJobErrorHandlerType());
     }
     
     /**