From 628d42194199fb1b5e832c217b2891c0d73eb7a4 Mon Sep 17 00:00:00 2001 From: "xueli.xue" Date: Thu, 21 Jul 2016 23:28:07 +0800 Subject: [PATCH] fresh --- .../admin/core/jobbean/RemoteHttpJobBean.java | 2 + .../xxl/job/admin/core/model/XxlJobLog.java | 7 ++ .../admin/core/thread/JobMonitorHelper.java | 12 +++- .../mybatis-mapper/XxlJobLogMapper.xml | 5 ++ .../template/jobinfo/jobinfo.index.ftl | 6 +- .../WEB-INF/template/joblog/joblog.index.ftl | 5 +- .../main/webapp/static/js/joblog.index.1.js | 3 +- .../core/executor/jetty/XxlJobExecutor.java | 20 ++---- .../job/core/handler/HandlerRepository.java | 66 ++++++++++++++----- .../service/jobhandler/DemoJobHandler.java | 2 +- 10 files changed, 88 insertions(+), 40 deletions(-) diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index 6b92877d..300a4d1a 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -52,12 +52,14 @@ public class RemoteHttpJobBean extends QuartzJobBean { params.put(HandlerParamEnum.JOB_GROUP.name(), jobInfo.getJobGroup()); params.put(HandlerParamEnum.JOB_NAME.name(), jobInfo.getJobName()); + params.put(HandlerParamEnum.EXECUTOR_HANDLER.name(), jobInfo.getExecutorHandler()); params.put(HandlerParamEnum.EXECUTOR_PARAMS.name(), jobInfo.getExecutorParam()); params.put(HandlerParamEnum.GLUE_SWITCH.name(), String.valueOf(jobInfo.getGlueSwitch())); // failover trigger RemoteCallBack callback = failoverTrigger(jobInfo.getExecutorAddress(), params, jobLog); + jobLog.setExecutorHandler(jobInfo.getExecutorHandler()); jobLog.setExecutorParam(jobInfo.getExecutorParam()); logger.info(">>>>>>>>>>> xxl-job failoverTrigger response, jobId:{}, callback:{}", jobLog.getId(), callback); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java index 70c52ab1..5e58923f 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java @@ -15,6 +15,7 @@ public class XxlJobLog { private String jobName; private String executorAddress; // 执行器地址,有多个则逗号分隔 + private String executorHandler; // 执行器Handler private String executorParam; // 执行器,任务参数 // trigger info @@ -51,6 +52,12 @@ public class XxlJobLog { public void setExecutorAddress(String executorAddress) { this.executorAddress = executorAddress; } + public String getExecutorHandler() { + return executorHandler; + } + public void setExecutorHandler(String executorHandler) { + this.executorHandler = executorHandler; + } public String getExecutorParam() { return executorParam; } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java index c033f115..3e9cb479 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java @@ -10,6 +10,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.text.MessageFormat; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import java.util.concurrent.*; /** @@ -51,8 +54,13 @@ public class JobMonitorHelper { if (RemoteCallBack.FAIL.equals(log.getTriggerStatus()) || RemoteCallBack.FAIL.equals(log.getHandleStatus())) { XxlJobInfo info = DynamicSchedulerUtil.xxlJobInfoDao.load(log.getJobGroup(), log.getJobName()); if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) { - MailUtil.sendMail(info.getAlarmEmail(), "《调度监控报警-调度平台平台XXL-JOB》", - MessageFormat.format("任务调度失败, 任务组:{0}, 任务描述:{1}.", info.getJobGroup(), info.getJobDesc()), false, null); + + Set emailSet = new HashSet(Arrays.asList(info.getAlarmEmail().split(","))); + for (String email: emailSet) { + String title = "《调度监控报警-调度平台平台XXL-JOB》"; + String content = MessageFormat.format("任务调度失败, 任务组:{0}, 任务描述:{1}.", info.getJobGroup(), info.getJobDesc()); + MailUtil.sendMail(email, title, content, false, null); + } } } } diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml index ed4d4d6e..d924fb01 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml @@ -10,6 +10,7 @@ + @@ -27,6 +28,7 @@ t.job_group, t.job_name, t.executor_address, + t.executor_handler, t.executor_param, t.trigger_time, t.trigger_status, @@ -94,11 +96,13 @@ `job_group`, `job_name`, `executor_address`, + `executor_handler`, `executor_param` ) VALUES ( #{jobGroup}, #{jobName}, #{executorAddress}, + #{executorHandler}, #{executorParam} ); @@ -113,6 +117,7 @@ `trigger_status`= #{triggerStatus}, `trigger_msg`= #{triggerMsg}, `executor_address`= #{executorAddress}, + `executor_handler`=#{executorHandler}, `executor_param`= #{executorParam} WHERE `id`= #{id} diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl index 9ce3a372..61f583b7 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl @@ -40,7 +40,7 @@
- 分组 + 任务组 <#list JobGroupList as group> @@ -194,7 +194,7 @@ public class DemoJobHandler extends IJobHandler {