089fba75b6d7cb8dc7deaf024fc2574365aa0b4f.svn-base 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.xxl.job.admin.core.route.strategy;
  2. import com.xxl.job.admin.core.scheduler.XxlJobScheduler;
  3. import com.xxl.job.admin.core.route.ExecutorRouter;
  4. import com.xxl.job.admin.core.util.I18nUtil;
  5. import com.xxl.job.core.biz.ExecutorBiz;
  6. import com.xxl.job.core.biz.model.ReturnT;
  7. import com.xxl.job.core.biz.model.TriggerParam;
  8. import java.util.List;
  9. /**
  10. * Created by xuxueli on 17/3/10.
  11. */
  12. public class ExecutorRouteFailover extends ExecutorRouter {
  13. @Override
  14. public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
  15. StringBuffer beatResultSB = new StringBuffer();
  16. for (String address : addressList) {
  17. // beat
  18. ReturnT<String> beatResult = null;
  19. try {
  20. ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address);
  21. beatResult = executorBiz.beat();
  22. } catch (Exception e) {
  23. logger.error(e.getMessage(), e);
  24. beatResult = new ReturnT<String>(ReturnT.FAIL_CODE, ""+e );
  25. }
  26. beatResultSB.append( (beatResultSB.length()>0)?"<br><br>":"")
  27. .append(I18nUtil.getString("jobconf_beat") + ":")
  28. .append("<br>address:").append(address)
  29. .append("<br>code:").append(beatResult.getCode())
  30. .append("<br>msg:").append(beatResult.getMsg());
  31. // beat success
  32. if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
  33. beatResult.setMsg(beatResultSB.toString());
  34. beatResult.setContent(address);
  35. return beatResult;
  36. }
  37. }
  38. return new ReturnT<String>(ReturnT.FAIL_CODE, beatResultSB.toString());
  39. }
  40. }