package com.xxl.job.admin.core.route.strategy;
|
|
import com.xxl.job.admin.core.scheduler.XxlJobScheduler;
|
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.core.biz.ExecutorBiz;
|
import com.xxl.job.core.biz.model.IdleBeatParam;
|
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
|
import java.util.List;
|
|
/**
|
* Created by xuxueli on 17/3/10.
|
*/
|
public class ExecutorRouteBusyover extends ExecutorRouter {
|
|
@Override
|
public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
|
StringBuffer idleBeatResultSB = new StringBuffer();
|
for (String address : addressList) {
|
// beat
|
ReturnT<String> idleBeatResult = null;
|
try {
|
ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address);
|
idleBeatResult = executorBiz.idleBeat(new IdleBeatParam(triggerParam.getJobId()));
|
} catch (Exception e) {
|
logger.error(e.getMessage(), e);
|
idleBeatResult = new ReturnT<String>(ReturnT.FAIL_CODE, ""+e );
|
}
|
idleBeatResultSB.append( (idleBeatResultSB.length()>0)?"<br><br>":"")
|
.append(I18nUtil.getString("jobconf_idleBeat") + ":")
|
.append("<br>address:").append(address)
|
.append("<br>code:").append(idleBeatResult.getCode())
|
.append("<br>msg:").append(idleBeatResult.getMsg());
|
|
// beat success
|
if (idleBeatResult.getCode() == ReturnT.SUCCESS_CODE) {
|
idleBeatResult.setMsg(idleBeatResultSB.toString());
|
idleBeatResult.setContent(address);
|
return idleBeatResult;
|
}
|
}
|
|
return new ReturnT<String>(ReturnT.FAIL_CODE, idleBeatResultSB.toString());
|
}
|
|
}
|