|
|
|
@ -13,6 +13,7 @@ import com.xxl.job.core.biz.AdminBiz; |
|
|
|
|
import com.xxl.job.core.biz.model.HandleCallbackParam; |
|
|
|
|
import com.xxl.job.core.biz.model.RegistryParam; |
|
|
|
|
import com.xxl.job.core.biz.model.ReturnT; |
|
|
|
|
import com.xxl.job.core.handler.IJobHandler; |
|
|
|
|
import org.apache.commons.lang.StringUtils; |
|
|
|
|
import org.quartz.SchedulerException; |
|
|
|
|
import org.slf4j.Logger; |
|
|
|
@ -46,7 +47,7 @@ public class AdminBizImpl implements AdminBiz { |
|
|
|
|
for (HandleCallbackParam handleCallbackParam: callbackParamList) { |
|
|
|
|
ReturnT<String> callbackResult = callback(handleCallbackParam); |
|
|
|
|
logger.info(">>>>>>>>> JobApiController.callback {}, handleCallbackParam={}, callbackResult={}", |
|
|
|
|
(callbackResult.getCode()==ReturnT.SUCCESS_CODE?"success":"fail"), handleCallbackParam, callbackResult); |
|
|
|
|
(callbackResult.getCode()==IJobHandler.SUCCESS.getCode()?"success":"fail"), handleCallbackParam, callbackResult); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ReturnT.SUCCESS; |
|
|
|
@ -58,28 +59,39 @@ public class AdminBizImpl implements AdminBiz { |
|
|
|
|
if (log == null) { |
|
|
|
|
return new ReturnT<String>(ReturnT.FAIL_CODE, "log item not found."); |
|
|
|
|
} |
|
|
|
|
if (log.getHandleCode() > 0) { |
|
|
|
|
return new ReturnT<String>(ReturnT.FAIL_CODE, "log repeate callback."); // avoid repeat callback, trigger child job etc
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// trigger success, to trigger child job, and avoid repeat trigger child job
|
|
|
|
|
String childTriggerMsg = null; |
|
|
|
|
if (ReturnT.SUCCESS_CODE==handleCallbackParam.getExecuteResult().getCode() && ReturnT.SUCCESS_CODE!=log.getHandleCode()) { |
|
|
|
|
// trigger success, to trigger child job
|
|
|
|
|
String callbackMsg = null; |
|
|
|
|
if (IJobHandler.SUCCESS.getCode() == handleCallbackParam.getExecuteResult().getCode()) { |
|
|
|
|
XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(log.getJobId()); |
|
|
|
|
if (xxlJobInfo!=null && StringUtils.isNotBlank(xxlJobInfo.getChildJobKey())) { |
|
|
|
|
childTriggerMsg = "<hr>"; |
|
|
|
|
callbackMsg = "<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>触发子任务<<<<<<<<<<< </span><br>"; |
|
|
|
|
|
|
|
|
|
String[] childJobKeys = xxlJobInfo.getChildJobKey().split(","); |
|
|
|
|
for (int i = 0; i < childJobKeys.length; i++) { |
|
|
|
|
String[] jobKeyArr = childJobKeys[i].split("_"); |
|
|
|
|
if (jobKeyArr!=null && jobKeyArr.length==2) { |
|
|
|
|
ReturnT<String> triggerChildResult = xxlJobService.triggerJob(Integer.valueOf(jobKeyArr[1])); |
|
|
|
|
|
|
|
|
|
// add msg
|
|
|
|
|
childTriggerMsg += MessageFormat.format("<br> {0}/{1} 触发子任务{2}, 子任务Key: {3}, 子任务触发备注: {4}", |
|
|
|
|
(i+1), childJobKeys.length, (triggerChildResult.getCode()==ReturnT.SUCCESS_CODE?"成功":"失败"), childJobKeys[i], triggerChildResult.getMsg()); |
|
|
|
|
callbackMsg += MessageFormat.format("{0}/{1} [JobKey={2}], 触发{3}, 触发备注: {4} <br>", |
|
|
|
|
(i+1), childJobKeys.length, childJobKeys[i], (triggerChildResult.getCode()==ReturnT.SUCCESS_CODE?"成功":"失败"), triggerChildResult.getMsg()); |
|
|
|
|
} else { |
|
|
|
|
childTriggerMsg += MessageFormat.format("<br> {0}/{1} 触发子任务失败, 子任务Key格式错误, 子任务Key: {2}", |
|
|
|
|
callbackMsg += MessageFormat.format(" {0}/{1} [JobKey={2}], 触发失败, 触发备注: JobKey格式错误 <br>", |
|
|
|
|
(i+1), childJobKeys.length, childJobKeys[i]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} else if (IJobHandler.FAIL_RETRY.getCode() == handleCallbackParam.getExecuteResult().getCode()){ |
|
|
|
|
ReturnT<String> retryTriggerResult = xxlJobService.triggerJob(log.getJobId()); |
|
|
|
|
callbackMsg = "<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>执行失败重试<<<<<<<<<<< </span><br>"; |
|
|
|
|
|
|
|
|
|
callbackMsg += MessageFormat.format("触发{0}, 触发备注: {1}", |
|
|
|
|
(retryTriggerResult.getCode()==ReturnT.SUCCESS_CODE?"成功":"失败"), retryTriggerResult.getMsg()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// handle msg
|
|
|
|
@ -90,8 +102,8 @@ public class AdminBizImpl implements AdminBiz { |
|
|
|
|
if (handleCallbackParam.getExecuteResult().getMsg() != null) { |
|
|
|
|
handleMsg.append(handleCallbackParam.getExecuteResult().getMsg()); |
|
|
|
|
} |
|
|
|
|
if (childTriggerMsg !=null) { |
|
|
|
|
handleMsg.append("<br>子任务触发备注:").append(childTriggerMsg); |
|
|
|
|
if (callbackMsg != null) { |
|
|
|
|
handleMsg.append(callbackMsg); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// success, save log
|
|
|
|
|