diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobNotifySceneEnum.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobNotifySceneEnum.java
index 4758c1d7..7b747e8e 100644
--- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobNotifySceneEnum.java
+++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobNotifySceneEnum.java
@@ -1,5 +1,6 @@
 package com.aizuda.snailjob.common.core.enums;
 
+import cn.hutool.core.util.StrUtil;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
@@ -14,6 +15,7 @@ import lombok.Getter;
 public enum JobNotifySceneEnum {
 
     /********************************Job****************************************/
+    NONE(0, StrUtil.EMPTY, NodeTypeEnum.SERVER),
     JOB_TASK_ERROR(1, "JOB任务执行失败", NodeTypeEnum.SERVER),
     JOB_CLIENT_ERROR(2, "客户端执行失败", NodeTypeEnum.CLIENT),
     JOB_NO_CLIENT_NODES_ERROR(3, "没有可执行的客户端节点", NodeTypeEnum.SERVER),
@@ -50,8 +52,22 @@ public enum JobNotifySceneEnum {
             }
         }
 
-        return null;
+        return NONE;
     }
 
+    /**
+     * 获取通知场景描述
+     *
+     * @param notifyScene
+     * @return
+     */
+    public static JobNotifySceneEnum getJobNotifyScene(Integer notifyScene) {
+        for (JobNotifySceneEnum sceneEnum : JobNotifySceneEnum.values()) {
+            if (sceneEnum.getNotifyScene() == notifyScene) {
+                return sceneEnum;
+            }
+        }
 
+        return NONE;
+    }
 }
diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobOperationReasonEnum.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobOperationReasonEnum.java
index 4ffce3ea..f2996d9d 100644
--- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobOperationReasonEnum.java
+++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobOperationReasonEnum.java
@@ -6,7 +6,6 @@ import lombok.Getter;
 
 import java.util.Arrays;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * 标识某个操作的具体原因
@@ -48,10 +47,14 @@ public enum JobOperationReasonEnum {
             WORKFLOW_NODE_NO_REQUIRED.getReason(), WORKFLOW_DECISION_FAILED.getReason(),
             WORKFLOW_CONDITION_NODE_EXECUTION_ERROR.getReason());
 
-    public static JobOperationReasonEnum getByReason(Integer reason) {
-        if (Objects.isNull(reason)) {
-            return NONE;
+    public static JobOperationReasonEnum getWorkflowNotifyScene(Integer notifyScene) {
+        for (JobOperationReasonEnum sceneEnum : JobOperationReasonEnum.values()) {
+            if (sceneEnum.getReason() == notifyScene) {
+                return sceneEnum;
+            }
         }
-        return Arrays.stream(values()).filter(e -> reason.equals(e.reason)).findFirst().orElse(NONE);
+
+        return NONE;
     }
+
 }
diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/RetryNotifySceneEnum.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/RetryNotifySceneEnum.java
index e8386575..1d4db4e4 100644
--- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/RetryNotifySceneEnum.java
+++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/RetryNotifySceneEnum.java
@@ -4,9 +4,6 @@ import cn.hutool.core.util.StrUtil;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
-import java.util.Arrays;
-import java.util.Objects;
-
 /**
  * 通知场景枚举
  *
@@ -38,7 +35,7 @@ public enum RetryNotifySceneEnum {
     /**
      * 通知场景
      */
-    private final Integer notifyScene;
+    private final int notifyScene;
 
     /**
      * 描述
@@ -67,11 +64,14 @@ public enum RetryNotifySceneEnum {
         return null;
     }
 
-    public static RetryNotifySceneEnum getByDesc(Integer notifyScene) {
-        if (Objects.isNull(notifyScene)) {
-            return NONE;
+    public static RetryNotifySceneEnum getRetryNotifyScene(Integer notifyScene) {
+        for (RetryNotifySceneEnum sceneEnum : RetryNotifySceneEnum.values()) {
+            if (sceneEnum.getNotifyScene() == notifyScene) {
+                return sceneEnum;
+            }
         }
-        return Arrays.stream(values()).filter(e -> notifyScene.equals(e.getNotifyScene())).findFirst().orElse(NONE);
+
+        return NONE;
     }
 
 }
diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractJobAlarm.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractJobAlarm.java
index bc2438e2..b01314b2 100644
--- a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractJobAlarm.java
+++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractJobAlarm.java
@@ -47,6 +47,7 @@ public abstract class AbstractJobAlarm<E extends ApplicationEvent> extends Abstr
                 JobAlarmInfo jobAlarmInfo = AlarmInfoConverter.INSTANCE.toJobAlarmInfo(jobBatchResponseDO);
                 JobAlarmInfo alarmInfo = jobAlarmInfoGroupMap.get(jobBatchResponseDO.getId());
                 jobAlarmInfo.setReason(alarmInfo.getReason());
+                jobAlarmInfo.setNotifyScene(alarmInfo.getNotifyScene());
 
                 List<JobAlarmInfo> jobAlarmInfos = jobAlarmInfoMap.getOrDefault(jobNotifyId, Lists.newArrayList());
                 jobAlarmInfos.add(jobAlarmInfo);
diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractWorkflowAlarm.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractWorkflowAlarm.java
index 30da6d8e..138418af 100644
--- a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractWorkflowAlarm.java
+++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractWorkflowAlarm.java
@@ -46,6 +46,7 @@ public abstract class AbstractWorkflowAlarm<E extends ApplicationEvent> extends
                 WorkflowAlarmInfo workflowAlarmInfo = AlarmInfoConverter.INSTANCE.toWorkflowAlarmInfo(workflowBatchResponseDO);
                 WorkflowAlarmInfo alarmInfo = workflowAlarmInfoGroupMap.get(workflowAlarmInfo.getId());
                 workflowAlarmInfo.setReason(alarmInfo.getReason());
+                workflowAlarmInfo.setNotifyScene(alarmInfo.getNotifyScene());
 
                 List<WorkflowAlarmInfo> workflowAlarmInfos = workflowAlarmInfoMap.getOrDefault(workflowNotifyId, Lists.newArrayList());
                 workflowAlarmInfos.add(workflowAlarmInfo);
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/alarm/listener/JobTaskFailAlarmListener.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/alarm/listener/JobTaskFailAlarmListener.java
index 19b11e84..d7f9be9f 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/alarm/listener/JobTaskFailAlarmListener.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/alarm/listener/JobTaskFailAlarmListener.java
@@ -2,7 +2,6 @@ package com.aizuda.snailjob.server.job.task.support.alarm.listener;
 
 import com.aizuda.snailjob.common.core.alarm.AlarmContext;
 import com.aizuda.snailjob.common.core.enums.JobNotifySceneEnum;
-import com.aizuda.snailjob.common.core.enums.JobOperationReasonEnum;
 import com.aizuda.snailjob.common.core.util.EnvironmentUtils;
 import com.aizuda.snailjob.common.log.SnailJobLog;
 import com.aizuda.snailjob.server.common.alarm.AbstractJobAlarm;
@@ -81,7 +80,7 @@ public class JobTaskFailAlarmListener extends AbstractJobAlarm<JobTaskFailAlarmE
                         alarmDTO.getGroupName(),
                         alarmDTO.getJobName(),
                         alarmDTO.getExecutorInfo(),
-                        JobOperationReasonEnum.getByReason(alarmDTO.getOperationReason()).getDesc(),
+                        JobNotifySceneEnum.getJobNotifyScene(alarmDTO.getNotifyScene()).getDesc(),
                         alarmDTO.getReason(),
                         alarmDTO.getArgsStr(),
                         DateUtils.toNowFormat(DateUtils.NORM_DATETIME_PATTERN))
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/alarm/listener/WorkflowTaskFailAlarmListener.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/alarm/listener/WorkflowTaskFailAlarmListener.java
index 7a7d1ad8..5dcf8915 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/alarm/listener/WorkflowTaskFailAlarmListener.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/alarm/listener/WorkflowTaskFailAlarmListener.java
@@ -74,7 +74,7 @@ public class WorkflowTaskFailAlarmListener extends AbstractWorkflowAlarm<Workflo
                         alarmDTO.getNamespaceId(),
                         alarmDTO.getGroupName(),
                         alarmDTO.getWorkflowName(),
-                        JobOperationReasonEnum.getByReason(alarmDTO.getOperationReason()).getDesc(),
+                        JobOperationReasonEnum.getWorkflowNotifyScene(alarmDTO.getOperationReason()).getDesc(),
                         alarmDTO.getReason(),
                         DateUtils.toNowFormat(DateUtils.NORM_DATETIME_PATTERN))
                 .title("{}环境 Workflow任务执行失败", EnvironmentUtils.getActiveProfile());
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/timer/JobTimeoutCheckTask.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/timer/JobTimeoutCheckTask.java
index e7e458e5..7aff4ed6 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/timer/JobTimeoutCheckTask.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/timer/JobTimeoutCheckTask.java
@@ -69,13 +69,14 @@ public class JobTimeoutCheckTask implements TimerTask<String> {
         stopJobContext.setWorkflowTaskBatchId(jobTaskBatch.getWorkflowTaskBatchId());
         instanceInterrupt.stop(stopJobContext);
 
+        String reason = "超时中断.taskBatchId:[" + taskBatchId + "]";
         SnailSpringContext.getContext().publishEvent(
                 new JobTaskFailAlarmEvent(JobTaskFailAlarmEventDTO.builder()
                         .jobTaskBatchId(taskBatchId)
-                        .reason("超时中断.taskBatchId:[" + taskBatchId + "]")
+                        .reason(reason)
                         .notifyScene(JobNotifySceneEnum.JOB_TASK_ERROR.getNotifyScene())
                         .build()));
-        SnailJobLog.LOCAL.info("超时中断.taskBatchId:[{}]", taskBatchId);
+        SnailJobLog.LOCAL.info(reason);
     }
 
     @Override
diff --git a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/listener/RetryTaskFailAlarmListener.java b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/listener/RetryTaskFailAlarmListener.java
index 3a036d22..5ad31bf0 100644
--- a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/listener/RetryTaskFailAlarmListener.java
+++ b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/listener/RetryTaskFailAlarmListener.java
@@ -89,7 +89,7 @@ public class RetryTaskFailAlarmListener extends
         return AlarmContext.build().text(retryTaskDeadTextMessagesFormatter,
                         EnvironmentUtils.getActiveProfile(),
                         notifyConfig.getNotifyThreshold(),
-                        RetryNotifySceneEnum.getByDesc(retryAlarmInfo.getNotifyScene()).getDesc(),
+                        RetryNotifySceneEnum.getRetryNotifyScene(retryAlarmInfo.getNotifyScene()).getDesc(),
                         retryAlarmInfo.getNamespaceId(),
                         retryAlarmInfo.getGroupName(),
                         retryAlarmInfo.getExecutorName(),