diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertChannel.java b/dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertChannel.java index 56c45362ddc8d0f7a6ccb67b253b4304a6b647b2..b461555a0ed5bd119e49782825d6f6fc8b7e0a5f 100644 --- a/dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertChannel.java +++ b/dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertChannel.java @@ -19,6 +19,8 @@ package org.apache.dolphinscheduler.alert.api; +import lombok.NonNull; + /** * alert channel for sending alerts */ @@ -31,7 +33,7 @@ public interface AlertChannel { */ AlertResult process(AlertInfo info); - default AlertResult closeAlert(AlertInfo info) { + default @NonNull AlertResult closeAlert(AlertInfo info) { return new AlertResult("true", "no need to close alert"); } } diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertInfo.java b/dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertInfo.java index e7e8e86074e4abe7ae44a1562edc2241bd7bbcfb..8e60bdd07afed98feea158bd54b497da4da9ba39 100644 --- a/dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertInfo.java +++ b/dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertInfo.java @@ -39,4 +39,6 @@ public class AlertInfo { private AlertData alertData; + private int alertPluginInstanceId; + } diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertSenderService.java b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertSenderService.java index fe2e1aaf4cd19f2a1b44d82c7befefca3d6fed1e..48dfaf3e3de3231d7873a606a749894e29dbd8ec 100644 --- a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertSenderService.java +++ b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertSenderService.java @@ -233,12 +233,13 @@ public final class AlertSenderService extends Thread { } AlertInfo alertInfo = AlertInfo.builder() - .alertData(alertData) - .alertParams(paramsMap) - .build(); + .alertData(alertData) + .alertParams(paramsMap) + .alertPluginInstanceId(instance.getId()) + .build(); int waitTimeout = alertConfig.getWaitTimeout(); - AlertResult alertResult; try { + AlertResult alertResult; if (waitTimeout <= 0) { if (alertData.getAlertType() == AlertType.CLOSE_ALERT.getCode()) { alertResult = alertChannel.closeAlert(alertInfo); @@ -254,31 +255,17 @@ public final class AlertSenderService extends Thread { } alertResult = future.get(waitTimeout, TimeUnit.MILLISECONDS); } + if (alertResult == null) { + throw new RuntimeException("Alert result cannot be null"); + } + return alertResult; } catch (InterruptedException e) { - alertResult = new AlertResult("false", e.getMessage()); logger.error("send alert error alert data id :{},", alertData.getId(), e); Thread.currentThread().interrupt(); + return new AlertResult("false", e.getMessage()); } catch (Exception e) { - alertResult = new AlertResult("false", e.getMessage()); logger.error("send alert error alert data id :{},", alertData.getId(), e); + return new AlertResult("false", e.getMessage()); } - - AlertResult alertResultExtend = new AlertResult(); - if (alertResult == null) { - String message = String.format("Alert Plugin %s send error : return alertResult value is null", pluginInstanceName); - alertResultExtend.setStatus("false"); - alertResultExtend.setMessage(message); - logger.info("Alert Plugin {} send error : return alertResult value is null", pluginInstanceName); - } else if (!Boolean.parseBoolean(String.valueOf(alertResult.getStatus()))) { - alertResultExtend.setStatus("false"); - alertResultExtend.setMessage(alertResult.getMessage()); - logger.info("Alert Plugin {} send error : {}", pluginInstanceName, alertResult.getMessage()); - } else { - String message = String.format("Alert Plugin %s send success", pluginInstanceName); - alertResultExtend.setStatus("true"); - alertResultExtend.setMessage(message); - logger.info("Alert Plugin {} send success", pluginInstanceName); - } - return alertResultExtend; } }