1ec99c60728240da5f7a5ab8e3c0b9a8eeb30ca6.svn-base 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.xxl.job.admin.core.route;
  2. import com.xxl.job.admin.core.route.strategy.*;
  3. import com.xxl.job.admin.core.util.I18nUtil;
  4. /**
  5. * Created by xuxueli on 17/3/10.
  6. */
  7. public enum ExecutorRouteStrategyEnum {
  8. FIRST(I18nUtil.getString("jobconf_route_first"), new ExecutorRouteFirst()),
  9. LAST(I18nUtil.getString("jobconf_route_last"), new ExecutorRouteLast()),
  10. ROUND(I18nUtil.getString("jobconf_route_round"), new ExecutorRouteRound()),
  11. RANDOM(I18nUtil.getString("jobconf_route_random"), new ExecutorRouteRandom()),
  12. CONSISTENT_HASH(I18nUtil.getString("jobconf_route_consistenthash"), new ExecutorRouteConsistentHash()),
  13. LEAST_FREQUENTLY_USED(I18nUtil.getString("jobconf_route_lfu"), new ExecutorRouteLFU()),
  14. LEAST_RECENTLY_USED(I18nUtil.getString("jobconf_route_lru"), new ExecutorRouteLRU()),
  15. FAILOVER(I18nUtil.getString("jobconf_route_failover"), new ExecutorRouteFailover()),
  16. BUSYOVER(I18nUtil.getString("jobconf_route_busyover"), new ExecutorRouteBusyover()),
  17. SHARDING_BROADCAST(I18nUtil.getString("jobconf_route_shard"), null);
  18. ExecutorRouteStrategyEnum(String title, ExecutorRouter router) {
  19. this.title = title;
  20. this.router = router;
  21. }
  22. private String title;
  23. private ExecutorRouter router;
  24. public String getTitle() {
  25. return title;
  26. }
  27. public ExecutorRouter getRouter() {
  28. return router;
  29. }
  30. public static ExecutorRouteStrategyEnum match(String name, ExecutorRouteStrategyEnum defaultItem){
  31. if (name != null) {
  32. for (ExecutorRouteStrategyEnum item: ExecutorRouteStrategyEnum.values()) {
  33. if (item.name().equals(name)) {
  34. return item;
  35. }
  36. }
  37. }
  38. return defaultItem;
  39. }
  40. }