xueli.xue 8 years ago
parent
commit
b590a65c4a

+ 3 - 3
db/tables_xxl_job.sql View File

165
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
165
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
166
 
166
 
167
 
167
 
168
-CREATE TABLE XXL_JOB_QRTZ_TRIGGER_LOG (
168
+CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOG` (
169
   `id` int(11) NOT NULL AUTO_INCREMENT,
169
   `id` int(11) NOT NULL AUTO_INCREMENT,
170
   `job_group` int(11) NOT NULL COMMENT '任务组',
170
   `job_group` int(11) NOT NULL COMMENT '任务组',
171
   `job_name` varchar(255) NOT NULL COMMENT '任务名',
171
   `job_name` varchar(255) NOT NULL COMMENT '任务名',
173
   `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
173
   `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
174
   `executor_param` varchar(255) DEFAULT NULL COMMENT 'executor_param',
174
   `executor_param` varchar(255) DEFAULT NULL COMMENT 'executor_param',
175
   `trigger_time` datetime DEFAULT NULL COMMENT '调度-时间',
175
   `trigger_time` datetime DEFAULT NULL COMMENT '调度-时间',
176
-  `trigger_status` varchar(255) DEFAULT NULL COMMENT '调度-结果',
176
+  `trigger_code` varchar(255) DEFAULT NULL COMMENT '调度-结果',
177
   `trigger_msg` varchar(2048) DEFAULT NULL COMMENT '调度-日志',
177
   `trigger_msg` varchar(2048) DEFAULT NULL COMMENT '调度-日志',
178
   `handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
178
   `handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
179
-  `handle_status` varchar(255) DEFAULT NULL COMMENT '执行-状态',
179
+  `handle_code` varchar(255) DEFAULT NULL COMMENT '执行-状态',
180
   `handle_msg` varchar(2048) DEFAULT NULL COMMENT '执行-日志',
180
   `handle_msg` varchar(2048) DEFAULT NULL COMMENT '执行-日志',
181
   PRIMARY KEY (`id`)
181
   PRIMARY KEY (`id`)
182
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
182
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java View File

97
 		if (log == null) {
97
 		if (log == null) {
98
 			return new ReturnT<String>(500, "查看执行日志失败: 参数异常");
98
 			return new ReturnT<String>(500, "查看执行日志失败: 参数异常");
99
 		}
99
 		}
100
-		if (!((ReturnT.SUCCESS_CODE+"").equals(log.getTriggerStatus()) || StringUtils.isNotBlank(log.getHandleStatus()))) {
100
+		if (ReturnT.SUCCESS_CODE != log.getTriggerCode()) {
101
 			return new ReturnT<String>(500, "查看执行日志失败: 任务发起调度失败,无法查看执行日志");
101
 			return new ReturnT<String>(500, "查看执行日志失败: 任务发起调度失败,无法查看执行日志");
102
 		}
102
 		}
103
 		
103
 		
134
 		if (log == null || jobInfo==null) {
134
 		if (log == null || jobInfo==null) {
135
 			return new ReturnT<String>(500, "参数异常");
135
 			return new ReturnT<String>(500, "参数异常");
136
 		}
136
 		}
137
-		if (!(ReturnT.SUCCESS_CODE +"").equals(log.getTriggerStatus())) {
137
+		if (ReturnT.SUCCESS_CODE != log.getTriggerCode()) {
138
 			return new ReturnT<String>(500, "调度失败,无法终止日志");
138
 			return new ReturnT<String>(500, "调度失败,无法终止日志");
139
 		}
139
 		}
140
 
140
 
149
 		ReturnT<String> runResult = executorBiz.kill(String.valueOf(log.getJobGroup()), log.getJobName());
149
 		ReturnT<String> runResult = executorBiz.kill(String.valueOf(log.getJobGroup()), log.getJobName());
150
 
150
 
151
 		if (ReturnT.SUCCESS_CODE == runResult.getCode()) {
151
 		if (ReturnT.SUCCESS_CODE == runResult.getCode()) {
152
-			log.setHandleStatus(ReturnT.SUCCESS_CODE+"");
152
+			log.setHandleCode(ReturnT.SUCCESS_CODE);
153
 			log.setHandleMsg("人为操作主动终止");
153
 			log.setHandleMsg("人为操作主动终止");
154
 			log.setHandleTime(new Date());
154
 			log.setHandleTime(new Date());
155
 			xxlJobLogDao.updateHandleInfo(log);
155
 			xxlJobLogDao.updateHandleInfo(log);

+ 10 - 7
xxl-job-admin/src/main/java/com/xxl/job/admin/core/biz/AdminBizImpl.java View File

4
 import com.xxl.job.admin.core.model.XxlJobLog;
4
 import com.xxl.job.admin.core.model.XxlJobLog;
5
 import com.xxl.job.admin.core.schedule.DynamicSchedulerUtil;
5
 import com.xxl.job.admin.core.schedule.DynamicSchedulerUtil;
6
 import com.xxl.job.core.biz.AdminBiz;
6
 import com.xxl.job.core.biz.AdminBiz;
7
+import com.xxl.job.core.biz.model.HandleCallbackParam;
7
 import com.xxl.job.core.biz.model.ReturnT;
8
 import com.xxl.job.core.biz.model.ReturnT;
8
-import com.xxl.job.core.biz.model.TriggerParam;
9
 import org.apache.commons.lang.StringUtils;
9
 import org.apache.commons.lang.StringUtils;
10
 import org.quartz.SchedulerException;
10
 import org.quartz.SchedulerException;
11
 import org.slf4j.Logger;
11
 import org.slf4j.Logger;
21
     private static Logger logger = LoggerFactory.getLogger(AdminBizImpl.class);
21
     private static Logger logger = LoggerFactory.getLogger(AdminBizImpl.class);
22
 
22
 
23
     @Override
23
     @Override
24
-    public ReturnT<String> callback(TriggerParam triggerParam) {
24
+    public ReturnT<String> callback(HandleCallbackParam handleCallbackParam) {
25
 
25
 
26
         // valid log item
26
         // valid log item
27
-        XxlJobLog log = DynamicSchedulerUtil.xxlJobLogDao.load(triggerParam.getLogId());
27
+        XxlJobLog log = DynamicSchedulerUtil.xxlJobLogDao.load(handleCallbackParam.getLogId());
28
         if (log == null) {
28
         if (log == null) {
29
             return new ReturnT(ReturnT.FAIL_CODE, "log item not found.");
29
             return new ReturnT(ReturnT.FAIL_CODE, "log item not found.");
30
         }
30
         }
31
 
31
 
32
         // trigger success, to trigger child job, and avoid repeat trigger child job
32
         // trigger success, to trigger child job, and avoid repeat trigger child job
33
         String childTriggerMsg = null;
33
         String childTriggerMsg = null;
34
-        if ((ReturnT.SUCCESS_CODE+"").equals(triggerParam.getStatus()) && !(ReturnT.SUCCESS_CODE+"").equals(log.getHandleStatus())) {
34
+        if (ReturnT.SUCCESS_CODE==handleCallbackParam.getCode() && ReturnT.SUCCESS_CODE!=log.getHandleCode()) {
35
             XxlJobInfo xxlJobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(log.getJobGroup(), log.getJobName());
35
             XxlJobInfo xxlJobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(log.getJobGroup(), log.getJobName());
36
             if (xxlJobInfo!=null && StringUtils.isNotBlank(xxlJobInfo.getChildJobKey())) {
36
             if (xxlJobInfo!=null && StringUtils.isNotBlank(xxlJobInfo.getChildJobKey())) {
37
                 childTriggerMsg = "<hr>";
37
                 childTriggerMsg = "<hr>";
65
 
65
 
66
         // handle msg
66
         // handle msg
67
         StringBuffer handleMsg = new StringBuffer();
67
         StringBuffer handleMsg = new StringBuffer();
68
-        if (triggerParam.getMsg() != null) {
69
-            handleMsg.append("执行备注:").append(triggerParam.getMsg());
68
+        if (log.getHandleMsg()!=null) {
69
+            handleMsg.append(log.getHandleMsg()).append("<br>");
70
+        }
71
+        if (handleCallbackParam.getMsg() != null) {
72
+            handleMsg.append("执行备注:").append(handleCallbackParam.getMsg());
70
         }
73
         }
71
         if (childTriggerMsg !=null) {
74
         if (childTriggerMsg !=null) {
72
             handleMsg.append("<br>子任务触发备注:").append(childTriggerMsg);
75
             handleMsg.append("<br>子任务触发备注:").append(childTriggerMsg);
74
 
77
 
75
         // success, save log
78
         // success, save log
76
         log.setHandleTime(new Date());
79
         log.setHandleTime(new Date());
77
-        log.setHandleStatus(triggerParam.getStatus());
80
+        log.setHandleCode(handleCallbackParam.getCode());
78
         log.setHandleMsg(handleMsg.toString());
81
         log.setHandleMsg(handleMsg.toString());
79
         DynamicSchedulerUtil.xxlJobLogDao.updateHandleInfo(log);
82
         DynamicSchedulerUtil.xxlJobLogDao.updateHandleInfo(log);
80
 
83
 

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java View File

80
 		logger.info(">>>>>>>>>>> xxl-job failoverTrigger response, jobId:{}, responseModel:{}", jobLog.getId(), responseModel.toString());
80
 		logger.info(">>>>>>>>>>> xxl-job failoverTrigger response, jobId:{}, responseModel:{}", jobLog.getId(), responseModel.toString());
81
 		
81
 		
82
 		// update trigger info 2/2
82
 		// update trigger info 2/2
83
-		jobLog.setTriggerStatus(responseModel.getCode()+"");
83
+		jobLog.setTriggerCode(responseModel.getCode());
84
 		jobLog.setTriggerMsg(responseModel.getMsg());
84
 		jobLog.setTriggerMsg(responseModel.getMsg());
85
 		DynamicSchedulerUtil.xxlJobLogDao.updateTriggerInfo(jobLog);
85
 		DynamicSchedulerUtil.xxlJobLogDao.updateTriggerInfo(jobLog);
86
 
86
 

+ 39 - 16
xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java View File

13
 	// job info
13
 	// job info
14
 	private int jobGroup;
14
 	private int jobGroup;
15
 	private String jobName;
15
 	private String jobName;
16
-	
17
-	private String executorAddress;	// 执行器地址,有多个则逗号分隔
18
-	private String executorHandler;	// 执行器Handler
19
-	private String executorParam;	// 执行器,任务参数
16
+
17
+	// execute info
18
+	private String executorAddress;
19
+	private String executorHandler;
20
+	private String executorParam;
20
 	
21
 	
21
 	// trigger info
22
 	// trigger info
22
 	private Date triggerTime;
23
 	private Date triggerTime;
23
-	private String triggerStatus;
24
+	private int triggerCode;
24
 	private String triggerMsg;
25
 	private String triggerMsg;
25
 	
26
 	
26
 	// handle info
27
 	// handle info
27
 	private Date handleTime;
28
 	private Date handleTime;
28
-	private String handleStatus;
29
+	private int handleCode;
29
 	private String handleMsg;
30
 	private String handleMsg;
30
-	
31
+
31
 	public int getId() {
32
 	public int getId() {
32
 		return id;
33
 		return id;
33
 	}
34
 	}
35
+
34
 	public void setId(int id) {
36
 	public void setId(int id) {
35
 		this.id = id;
37
 		this.id = id;
36
 	}
38
 	}
39
+
37
 	public int getJobGroup() {
40
 	public int getJobGroup() {
38
 		return jobGroup;
41
 		return jobGroup;
39
 	}
42
 	}
43
+
40
 	public void setJobGroup(int jobGroup) {
44
 	public void setJobGroup(int jobGroup) {
41
 		this.jobGroup = jobGroup;
45
 		this.jobGroup = jobGroup;
42
 	}
46
 	}
47
+
43
 	public String getJobName() {
48
 	public String getJobName() {
44
 		return jobName;
49
 		return jobName;
45
 	}
50
 	}
51
+
46
 	public void setJobName(String jobName) {
52
 	public void setJobName(String jobName) {
47
 		this.jobName = jobName;
53
 		this.jobName = jobName;
48
 	}
54
 	}
55
+
49
 	public String getExecutorAddress() {
56
 	public String getExecutorAddress() {
50
 		return executorAddress;
57
 		return executorAddress;
51
 	}
58
 	}
59
+
52
 	public void setExecutorAddress(String executorAddress) {
60
 	public void setExecutorAddress(String executorAddress) {
53
 		this.executorAddress = executorAddress;
61
 		this.executorAddress = executorAddress;
54
 	}
62
 	}
63
+
55
 	public String getExecutorHandler() {
64
 	public String getExecutorHandler() {
56
 		return executorHandler;
65
 		return executorHandler;
57
 	}
66
 	}
67
+
58
 	public void setExecutorHandler(String executorHandler) {
68
 	public void setExecutorHandler(String executorHandler) {
59
 		this.executorHandler = executorHandler;
69
 		this.executorHandler = executorHandler;
60
 	}
70
 	}
71
+
61
 	public String getExecutorParam() {
72
 	public String getExecutorParam() {
62
 		return executorParam;
73
 		return executorParam;
63
 	}
74
 	}
75
+
64
 	public void setExecutorParam(String executorParam) {
76
 	public void setExecutorParam(String executorParam) {
65
 		this.executorParam = executorParam;
77
 		this.executorParam = executorParam;
66
 	}
78
 	}
79
+
67
 	public Date getTriggerTime() {
80
 	public Date getTriggerTime() {
68
 		return triggerTime;
81
 		return triggerTime;
69
 	}
82
 	}
83
+
70
 	public void setTriggerTime(Date triggerTime) {
84
 	public void setTriggerTime(Date triggerTime) {
71
 		this.triggerTime = triggerTime;
85
 		this.triggerTime = triggerTime;
72
 	}
86
 	}
73
-	public String getTriggerStatus() {
74
-		return triggerStatus;
87
+
88
+	public int getTriggerCode() {
89
+		return triggerCode;
75
 	}
90
 	}
76
-	public void setTriggerStatus(String triggerStatus) {
77
-		this.triggerStatus = triggerStatus;
91
+
92
+	public void setTriggerCode(int triggerCode) {
93
+		this.triggerCode = triggerCode;
78
 	}
94
 	}
95
+
79
 	public String getTriggerMsg() {
96
 	public String getTriggerMsg() {
80
 		return triggerMsg;
97
 		return triggerMsg;
81
 	}
98
 	}
99
+
82
 	public void setTriggerMsg(String triggerMsg) {
100
 	public void setTriggerMsg(String triggerMsg) {
83
 		this.triggerMsg = triggerMsg;
101
 		this.triggerMsg = triggerMsg;
84
 	}
102
 	}
103
+
85
 	public Date getHandleTime() {
104
 	public Date getHandleTime() {
86
 		return handleTime;
105
 		return handleTime;
87
 	}
106
 	}
107
+
88
 	public void setHandleTime(Date handleTime) {
108
 	public void setHandleTime(Date handleTime) {
89
 		this.handleTime = handleTime;
109
 		this.handleTime = handleTime;
90
 	}
110
 	}
91
-	public String getHandleStatus() {
92
-		return handleStatus;
111
+
112
+	public int getHandleCode() {
113
+		return handleCode;
93
 	}
114
 	}
94
-	public void setHandleStatus(String handleStatus) {
95
-		this.handleStatus = handleStatus;
115
+
116
+	public void setHandleCode(int handleCode) {
117
+		this.handleCode = handleCode;
96
 	}
118
 	}
119
+
97
 	public String getHandleMsg() {
120
 	public String getHandleMsg() {
98
 		return handleMsg;
121
 		return handleMsg;
99
 	}
122
 	}
123
+
100
 	public void setHandleMsg(String handleMsg) {
124
 	public void setHandleMsg(String handleMsg) {
101
 		this.handleMsg = handleMsg;
125
 		this.handleMsg = handleMsg;
102
 	}
126
 	}
103
-	
104
 }
127
 }

+ 5 - 5
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java View File

6
 import com.xxl.job.admin.core.schedule.DynamicSchedulerUtil;
6
 import com.xxl.job.admin.core.schedule.DynamicSchedulerUtil;
7
 import com.xxl.job.admin.core.util.MailUtil;
7
 import com.xxl.job.admin.core.util.MailUtil;
8
 import com.xxl.job.core.biz.model.ReturnT;
8
 import com.xxl.job.core.biz.model.ReturnT;
9
-import org.apache.commons.lang.StringUtils;
10
 import org.slf4j.Logger;
9
 import org.slf4j.Logger;
11
 import org.slf4j.LoggerFactory;
10
 import org.slf4j.LoggerFactory;
12
 
11
 
41
 							logger.info(">>>>>>>>>>> job monitor heat success, JobLogId:{}", jobLogId);
40
 							logger.info(">>>>>>>>>>> job monitor heat success, JobLogId:{}", jobLogId);
42
 							XxlJobLog log = DynamicSchedulerUtil.xxlJobLogDao.load(jobLogId);
41
 							XxlJobLog log = DynamicSchedulerUtil.xxlJobLogDao.load(jobLogId);
43
 							if (log!=null) {
42
 							if (log!=null) {
44
-								if ((ReturnT.SUCCESS_CODE+"").equals(log.getTriggerStatus()) && StringUtils.isBlank(log.getHandleStatus())) {
43
+								if (ReturnT.SUCCESS_CODE==log.getTriggerCode() && log.getHandleCode()==0) {
44
+									// running
45
 									try {
45
 									try {
46
 										TimeUnit.SECONDS.sleep(10);
46
 										TimeUnit.SECONDS.sleep(10);
47
 									} catch (InterruptedException e) {
47
 									} catch (InterruptedException e) {
49
 									}
49
 									}
50
 									JobMonitorHelper.monitor(jobLogId);
50
 									JobMonitorHelper.monitor(jobLogId);
51
 								}
51
 								}
52
-								if ((ReturnT.SUCCESS_CODE+"").equals(log.getTriggerStatus()) && (ReturnT.SUCCESS_CODE+"").equals(log.getHandleStatus())) {
52
+								if (ReturnT.SUCCESS_CODE==log.getTriggerCode() && ReturnT.SUCCESS_CODE==log.getHandleCode()) {
53
 									// pass
53
 									// pass
54
 								}
54
 								}
55
-								if ((ReturnT.FAIL+"").equals(log.getTriggerStatus()) || (ReturnT.FAIL+"").equals(log.getHandleStatus())) {
55
+								if (ReturnT.FAIL_CODE == log.getTriggerCode()|| ReturnT.FAIL_CODE==log.getHandleCode()) {
56
 									XxlJobInfo info = DynamicSchedulerUtil.xxlJobInfoDao.load(log.getJobGroup(), log.getJobName());
56
 									XxlJobInfo info = DynamicSchedulerUtil.xxlJobInfoDao.load(log.getJobGroup(), log.getJobName());
57
 									if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) {
57
 									if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) {
58
 
58
 
59
 										Set<String> emailSet = new HashSet<String>(Arrays.asList(info.getAlarmEmail().split(",")));
59
 										Set<String> emailSet = new HashSet<String>(Arrays.asList(info.getAlarmEmail().split(",")));
60
 										for (String email: emailSet) {
60
 										for (String email: emailSet) {
61
-											String title = "《调度监控报警-任务调度中心XXL-JOB》";
61
+											String title = "《调度监控报警》(任务调度中心XXL-JOB)";
62
 											XxlJobGroup group = DynamicSchedulerUtil.xxlJobGroupDao.load(Integer.valueOf(info.getJobGroup()));
62
 											XxlJobGroup group = DynamicSchedulerUtil.xxlJobGroupDao.load(Integer.valueOf(info.getJobGroup()));
63
 											String content = MessageFormat.format("任务调度失败, 执行器名称:{0}, 任务描述:{1}.", group!=null?group.getTitle():"null", info.getJobDesc());
63
 											String content = MessageFormat.format("任务调度失败, 执行器名称:{0}, 任务描述:{1}.", group!=null?group.getTitle():"null", info.getJobDesc());
64
 											MailUtil.sendMail(email, title, content, false, null);
64
 											MailUtil.sendMail(email, title, content, false, null);

+ 6 - 6
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml View File

14
 	    <result column="executor_param" property="executorParam" />
14
 	    <result column="executor_param" property="executorParam" />
15
 	    
15
 	    
16
 	    <result column="trigger_time" property="triggerTime" />
16
 	    <result column="trigger_time" property="triggerTime" />
17
-	    <result column="trigger_status" property="triggerStatus" />
17
+	    <result column="trigger_code" property="triggerCode" />
18
 	    <result column="trigger_msg" property="triggerMsg" />
18
 	    <result column="trigger_msg" property="triggerMsg" />
19
 	    
19
 	    
20
 	    <result column="handle_time" property="handleTime" />
20
 	    <result column="handle_time" property="handleTime" />
21
-	    <result column="handle_status" property="handleStatus" />
21
+	    <result column="handle_code" property="handleCode" />
22
 	    <result column="handle_msg" property="handleMsg" />
22
 	    <result column="handle_msg" property="handleMsg" />
23
 	    
23
 	    
24
 	</resultMap>
24
 	</resultMap>
31
 		t.executor_handler,
31
 		t.executor_handler,
32
 		t.executor_param,
32
 		t.executor_param,
33
 		t.trigger_time,
33
 		t.trigger_time,
34
-		t.trigger_status,
34
+		t.trigger_code,
35
 		t.trigger_msg,
35
 		t.trigger_msg,
36
 		t.handle_time,
36
 		t.handle_time,
37
-		t.handle_status,
37
+		t.handle_code,
38
 		t.handle_msg
38
 		t.handle_msg
39
 	</sql>
39
 	</sql>
40
 	
40
 	
108
 		UPDATE XXL_JOB_QRTZ_TRIGGER_LOG
108
 		UPDATE XXL_JOB_QRTZ_TRIGGER_LOG
109
 		SET 
109
 		SET 
110
 			`trigger_time`= #{triggerTime}, 
110
 			`trigger_time`= #{triggerTime}, 
111
-			`trigger_status`= #{triggerStatus}, 
111
+			`trigger_code`= #{triggerCode},
112
 			`trigger_msg`= #{triggerMsg},
112
 			`trigger_msg`= #{triggerMsg},
113
 			`executor_address`= #{executorAddress},
113
 			`executor_address`= #{executorAddress},
114
 			`executor_handler`=#{executorHandler},
114
 			`executor_handler`=#{executorHandler},
120
 		UPDATE XXL_JOB_QRTZ_TRIGGER_LOG
120
 		UPDATE XXL_JOB_QRTZ_TRIGGER_LOG
121
 		SET 
121
 		SET 
122
 			`handle_time`= #{handleTime}, 
122
 			`handle_time`= #{handleTime}, 
123
-			`handle_status`= #{handleStatus}, 
123
+			`handle_code`= #{handleCode},
124
 			`handle_msg`= #{handleMsg} 
124
 			`handle_msg`= #{handleMsg} 
125
 		WHERE `id`= #{id}
125
 		WHERE `id`= #{id}
126
 	</update>
126
 	</update>

+ 2 - 2
xxl-job-core/src/main/java/com/xxl/job/core/biz/AdminBiz.java View File

1
 package com.xxl.job.core.biz;
1
 package com.xxl.job.core.biz;
2
 
2
 
3
+import com.xxl.job.core.biz.model.HandleCallbackParam;
3
 import com.xxl.job.core.biz.model.ReturnT;
4
 import com.xxl.job.core.biz.model.ReturnT;
4
-import com.xxl.job.core.biz.model.TriggerParam;
5
 
5
 
6
 /**
6
 /**
7
  * Created by xuxueli on 17/3/1.
7
  * Created by xuxueli on 17/3/1.
8
  */
8
  */
9
 public interface AdminBiz {
9
 public interface AdminBiz {
10
 
10
 
11
-    public ReturnT<String> callback(TriggerParam triggerParam);
11
+    public ReturnT<String> callback(HandleCallbackParam handleCallbackParam);
12
 
12
 
13
 }
13
 }

+ 57 - 0
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/HandleCallbackParam.java View File

1
+package com.xxl.job.core.biz.model;
2
+
3
+import java.io.Serializable;
4
+import java.util.Set;
5
+
6
+/**
7
+ * Created by xuxueli on 17/3/2.
8
+ */
9
+public class HandleCallbackParam implements Serializable {
10
+    private static final long serialVersionUID = 42L;
11
+
12
+    private int logId;
13
+    private Set<String> logAddress;
14
+
15
+    private int code;
16
+    private String msg;
17
+
18
+    public HandleCallbackParam(int logId, Set<String> logAddress, int code, String msg) {
19
+        this.logId = logId;
20
+        this.logAddress = logAddress;
21
+        this.code = code;
22
+        this.msg = msg;
23
+    }
24
+
25
+    public int getLogId() {
26
+        return logId;
27
+    }
28
+
29
+    public void setLogId(int logId) {
30
+        this.logId = logId;
31
+    }
32
+
33
+    public Set<String> getLogAddress() {
34
+        return logAddress;
35
+    }
36
+
37
+    public void setLogAddress(Set<String> logAddress) {
38
+        this.logAddress = logAddress;
39
+    }
40
+
41
+    public int getCode() {
42
+        return code;
43
+    }
44
+
45
+    public void setCode(int code) {
46
+        this.code = code;
47
+    }
48
+
49
+    public String getMsg() {
50
+        return msg;
51
+    }
52
+
53
+    public void setMsg(String msg) {
54
+        this.msg = msg;
55
+    }
56
+
57
+}

+ 0 - 21
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java View File

23
     private int logId;
23
     private int logId;
24
     private long logDateTim;
24
     private long logDateTim;
25
 
25
 
26
-    private String status;
27
-    private String msg;
28
-
29
     public String getAction() {
26
     public String getAction() {
30
         return action;
27
         return action;
31
     }
28
     }
98
         this.logDateTim = logDateTim;
95
         this.logDateTim = logDateTim;
99
     }
96
     }
100
 
97
 
101
-    public String getStatus() {
102
-        return status;
103
-    }
104
-
105
-    public void setStatus(String status) {
106
-        this.status = status;
107
-    }
108
-
109
-    public String getMsg() {
110
-        return msg;
111
-    }
112
-
113
-    public void setMsg(String msg) {
114
-        this.msg = msg;
115
-    }
116
-
117
     @Override
98
     @Override
118
     public String toString() {
99
     public String toString() {
119
         return "RequestModel{" +
100
         return "RequestModel{" +
126
                 ", logAddress=" + logAddress +
107
                 ", logAddress=" + logAddress +
127
                 ", logId=" + logId +
108
                 ", logId=" + logId +
128
                 ", logDateTim=" + logDateTim +
109
                 ", logDateTim=" + logDateTim +
129
-                ", status='" + status + '\'' +
130
-                ", msg='" + msg + '\'' +
131
                 '}';
110
                 '}';
132
     }
111
     }
133
 }
112
 }

+ 4 - 9
xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java View File

1
 package com.xxl.job.core.thread;
1
 package com.xxl.job.core.thread;
2
 
2
 
3
+import com.xxl.job.core.biz.model.HandleCallbackParam;
3
 import com.xxl.job.core.biz.model.ReturnT;
4
 import com.xxl.job.core.biz.model.ReturnT;
4
 import com.xxl.job.core.biz.model.TriggerParam;
5
 import com.xxl.job.core.biz.model.TriggerParam;
5
 import com.xxl.job.core.handler.IJobHandler;
6
 import com.xxl.job.core.handler.IJobHandler;
96
 					// callback handler info
97
 					// callback handler info
97
 					if (!toStop) {
98
 					if (!toStop) {
98
 						// commonm
99
 						// commonm
99
-						triggerParam.setStatus(_code+"");
100
-						triggerParam.setMsg(_msg);
101
-						TriggerCallbackThread.pushCallBack(triggerParam);
100
+						TriggerCallbackThread.pushCallBack(new HandleCallbackParam(triggerParam.getLogId(), triggerParam.getLogAddress(), _code, _msg));
102
 					} else {
101
 					} else {
103
 						// is killed
102
 						// is killed
104
-						triggerParam.setStatus(ReturnT.FAIL_CODE+"");
105
-						triggerParam.setMsg(stopReason + " [业务运行中,被强制终止]");
106
-						TriggerCallbackThread.pushCallBack(triggerParam);
103
+						TriggerCallbackThread.pushCallBack(new HandleCallbackParam(triggerParam.getLogId(), triggerParam.getLogAddress(), ReturnT.FAIL_CODE, stopReason + " [业务运行中,被强制终止]"));
107
 					}
104
 					}
108
 				}
105
 				}
109
 			} catch (Exception e) {
106
 			} catch (Exception e) {
116
 			TriggerParam triggerParam = triggerQueue.poll();
113
 			TriggerParam triggerParam = triggerQueue.poll();
117
 			if (triggerParam!=null) {
114
 			if (triggerParam!=null) {
118
 				// is killed
115
 				// is killed
119
-				triggerParam.setStatus(ReturnT.FAIL_CODE+"");
120
-				triggerParam.setMsg(stopReason + " [任务尚未执行,在调度队列中被终止]");
121
-				TriggerCallbackThread.pushCallBack(triggerParam);
116
+				TriggerCallbackThread.pushCallBack(new HandleCallbackParam(triggerParam.getLogId(), triggerParam.getLogAddress(), ReturnT.FAIL_CODE, stopReason + " [任务尚未执行,在调度队列中被终止]"));
122
 			}
117
 			}
123
 		}
118
 		}
124
 		
119
 		

+ 4 - 5
xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java View File

1
 package com.xxl.job.core.thread;
1
 package com.xxl.job.core.thread;
2
 
2
 
3
 import com.xxl.job.core.biz.AdminBiz;
3
 import com.xxl.job.core.biz.AdminBiz;
4
+import com.xxl.job.core.biz.model.HandleCallbackParam;
4
 import com.xxl.job.core.biz.model.ReturnT;
5
 import com.xxl.job.core.biz.model.ReturnT;
5
-import com.xxl.job.core.biz.model.TriggerParam;
6
 import com.xxl.job.core.rpc.netcom.NetComClientProxy;
6
 import com.xxl.job.core.rpc.netcom.NetComClientProxy;
7
 import org.slf4j.Logger;
7
 import org.slf4j.Logger;
8
 import org.slf4j.LoggerFactory;
8
 import org.slf4j.LoggerFactory;
15
 public class TriggerCallbackThread {
15
 public class TriggerCallbackThread {
16
     private static Logger logger = LoggerFactory.getLogger(TriggerCallbackThread.class);
16
     private static Logger logger = LoggerFactory.getLogger(TriggerCallbackThread.class);
17
 
17
 
18
-    private static LinkedBlockingQueue<TriggerParam> callBackQueue = new LinkedBlockingQueue<TriggerParam>();
18
+    private static LinkedBlockingQueue<HandleCallbackParam> callBackQueue = new LinkedBlockingQueue<HandleCallbackParam>();
19
     static {
19
     static {
20
         new Thread(new Runnable() {
20
         new Thread(new Runnable() {
21
             @Override
21
             @Override
22
             public void run() {
22
             public void run() {
23
                 while(true){
23
                 while(true){
24
                     try {
24
                     try {
25
-                        TriggerParam callback = callBackQueue.take();
25
+                        HandleCallbackParam callback = callBackQueue.take();
26
                         if (callback != null) {
26
                         if (callback != null) {
27
                             for (String address : callback.getLogAddress()) {
27
                             for (String address : callback.getLogAddress()) {
28
                                 try {
28
                                 try {
29
-
30
                                     // callback
29
                                     // callback
31
                                     AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, address).getObject();
30
                                     AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, address).getObject();
32
                                     ReturnT<String> callbackResult = adminBiz.callback(callback);
31
                                     ReturnT<String> callbackResult = adminBiz.callback(callback);
47
             }
46
             }
48
         }).start();
47
         }).start();
49
     }
48
     }
50
-    public static void pushCallBack(TriggerParam callback){
49
+    public static void pushCallBack(HandleCallbackParam callback){
51
         callBackQueue.add(callback);
50
         callBackQueue.add(callback);
52
         logger.debug(">>>>>>>>>>> xxl-job, push callback request, logId:{}", callback.getLogId());
51
         logger.debug(">>>>>>>>>>> xxl-job, push callback request, logId:{}", callback.getLogId());
53
     }
52
     }