312b8a38cb13241add59afce29804b9cf710e0c1.svn-base 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.xxl.job.admin.core.scheduler;
  2. import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
  3. import com.xxl.job.admin.core.thread.*;
  4. import com.xxl.job.admin.core.util.I18nUtil;
  5. import com.xxl.job.core.biz.ExecutorBiz;
  6. import com.xxl.job.core.biz.client.ExecutorBizClient;
  7. import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import java.util.concurrent.ConcurrentHashMap;
  11. import java.util.concurrent.ConcurrentMap;
  12. /**
  13. * @author xuxueli 2018-10-28 00:18:17
  14. */
  15. public class XxlJobScheduler {
  16. private static final Logger logger = LoggerFactory.getLogger(XxlJobScheduler.class);
  17. public void init() throws Exception {
  18. // init i18n
  19. initI18n();
  20. // admin registry monitor run
  21. JobRegistryMonitorHelper.getInstance().start();
  22. // admin fail-monitor run
  23. JobFailMonitorHelper.getInstance().start();
  24. // admin lose-monitor run
  25. JobLosedMonitorHelper.getInstance().start();
  26. // admin trigger pool start
  27. JobTriggerPoolHelper.toStart();
  28. // admin log report start
  29. JobLogReportHelper.getInstance().start();
  30. // start-schedule
  31. JobScheduleHelper.getInstance().start();
  32. logger.info(">>>>>>>>> init xxl-job admin success.");
  33. }
  34. public void destroy() throws Exception {
  35. // stop-schedule
  36. JobScheduleHelper.getInstance().toStop();
  37. // admin log report stop
  38. JobLogReportHelper.getInstance().toStop();
  39. // admin trigger pool stop
  40. JobTriggerPoolHelper.toStop();
  41. // admin lose-monitor stop
  42. JobLosedMonitorHelper.getInstance().toStop();
  43. // admin fail-monitor stop
  44. JobFailMonitorHelper.getInstance().toStop();
  45. // admin registry stop
  46. JobRegistryMonitorHelper.getInstance().toStop();
  47. }
  48. // ---------------------- I18n ----------------------
  49. private void initI18n(){
  50. for (ExecutorBlockStrategyEnum item:ExecutorBlockStrategyEnum.values()) {
  51. item.setTitle(I18nUtil.getString("jobconf_block_".concat(item.name())));
  52. }
  53. }
  54. // ---------------------- executor-client ----------------------
  55. private static ConcurrentMap<String, ExecutorBiz> executorBizRepository = new ConcurrentHashMap<String, ExecutorBiz>();
  56. public static ExecutorBiz getExecutorBiz(String address) throws Exception {
  57. // valid
  58. if (address==null || address.trim().length()==0) {
  59. return null;
  60. }
  61. // load-cache
  62. address = address.trim();
  63. ExecutorBiz executorBiz = executorBizRepository.get(address);
  64. if (executorBiz != null) {
  65. return executorBiz;
  66. }
  67. // set-cache
  68. executorBiz = new ExecutorBizClient(address, XxlJobAdminConfig.getAdminConfig().getAccessToken());
  69. executorBizRepository.put(address, executorBiz);
  70. return executorBiz;
  71. }
  72. }