Browse Source

失败告警策略扩展:默认提供邮件失败告警,可扩展短信等,扩展代码位置为 "JobFailMonitorHelper.failAlarm";

xuxueli 7 years ago
parent
commit
b7a2724f11

+ 1 - 0
doc/XXL-JOB官方文档.md View File

1021
 ### 6.20 版本 V1.9.0 特性[迭代中]
1021
 ### 6.20 版本 V1.9.0 特性[迭代中]
1022
 - 1、新增任务运行模式 "GLUE模式(NodeJS) ",支持NodeJS脚本任务;
1022
 - 1、新增任务运行模式 "GLUE模式(NodeJS) ",支持NodeJS脚本任务;
1023
 - 2、修复任务监控线程被耗时任务阻塞的问题;
1023
 - 2、修复任务监控线程被耗时任务阻塞的问题;
1024
+- 3、失败告警策略扩展:默认提供邮件失败告警,可扩展短信等,扩展代码位置为 "JobFailMonitorHelper.failAlarm";
1024
 
1025
 
1025
 ### TODO LIST
1026
 ### TODO LIST
1026
 - 1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
1027
 - 1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;

+ 10 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java View File

61
 								}
61
 								}
62
 								if (ReturnT.FAIL_CODE == log.getTriggerCode() || ReturnT.FAIL_CODE == log.getHandleCode()) {
62
 								if (ReturnT.FAIL_CODE == log.getTriggerCode() || ReturnT.FAIL_CODE == log.getHandleCode()) {
63
 									// job fail,
63
 									// job fail,
64
-									sendMonitorEmail(log);
64
+									failAlarm(log);
65
 									logger.info(">>>>>>>>>>> job monitor, job fail, JobLogId:{}", jobLogId);
65
 									logger.info(">>>>>>>>>>> job monitor, job fail, JobLogId:{}", jobLogId);
66
 								}
66
 								}
67
 							}
67
 							}
81
 						XxlJobLog log = XxlJobDynamicScheduler.xxlJobLogDao.load(jobLogId);
81
 						XxlJobLog log = XxlJobDynamicScheduler.xxlJobLogDao.load(jobLogId);
82
 						if (ReturnT.FAIL_CODE == log.getTriggerCode()|| ReturnT.FAIL_CODE==log.getHandleCode()) {
82
 						if (ReturnT.FAIL_CODE == log.getTriggerCode()|| ReturnT.FAIL_CODE==log.getHandleCode()) {
83
 							// job fail,
83
 							// job fail,
84
-							sendMonitorEmail(log);
84
+							failAlarm(log);
85
 							logger.info(">>>>>>>>>>> job monitor last, job fail, JobLogId:{}", jobLogId);
85
 							logger.info(">>>>>>>>>>> job monitor last, job fail, JobLogId:{}", jobLogId);
86
 						}
86
 						}
87
 					}
87
 					}
94
 	}
94
 	}
95
 
95
 
96
 	/**
96
 	/**
97
-	 * send monitor email
97
+	 * fail alarm
98
+	 *
98
 	 * @param jobLog
99
 	 * @param jobLog
99
 	 */
100
 	 */
100
-	private void sendMonitorEmail(XxlJobLog jobLog){
101
+	private void failAlarm(XxlJobLog jobLog){
102
+
103
+		// send monitor email
101
 		XxlJobInfo info = XxlJobDynamicScheduler.xxlJobInfoDao.loadById(jobLog.getJobId());
104
 		XxlJobInfo info = XxlJobDynamicScheduler.xxlJobInfoDao.loadById(jobLog.getJobId());
102
 		if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) {
105
 		if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) {
103
 
106
 
109
 				MailUtil.sendMail(email, title, content, false, null);
112
 				MailUtil.sendMail(email, title, content, false, null);
110
 			}
113
 			}
111
 		}
114
 		}
115
+
116
+		// TODO, custom alarm strategy, such as sms
117
+
112
 	}
118
 	}
113
 
119
 
114
 	public void toStop(){
120
 	public void toStop(){