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.ReturnT; import com.xxl.job.core.biz.model.TriggerParam; import java.util.List; /** * Created by xuxueli on 17/3/10. */ public class ExecutorRouteFailover extends ExecutorRouter { @Override public ReturnT route(TriggerParam triggerParam, List addressList) { StringBuffer beatResultSB = new StringBuffer(); for (String address : addressList) { // beat ReturnT beatResult = null; try { ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address); beatResult = executorBiz.beat(); } catch (Exception e) { logger.error(e.getMessage(), e); beatResult = new ReturnT(ReturnT.FAIL_CODE, ""+e ); } beatResultSB.append( (beatResultSB.length()>0)?"

":"") .append(I18nUtil.getString("jobconf_beat") + ":") .append("
address:").append(address) .append("
code:").append(beatResult.getCode()) .append("
msg:").append(beatResult.getMsg()); // beat success if (beatResult.getCode() == ReturnT.SUCCESS_CODE) { beatResult.setMsg(beatResultSB.toString()); beatResult.setContent(address); return beatResult; } } return new ReturnT(ReturnT.FAIL_CODE, beatResultSB.toString()); } }