XXL-JOB學習筆記(二)

wzng發表於2020-11-24

xxl支援多種路由策略。路由策略針對同一個job在不同group執行的策略,當同時啟動多個同名的執行器例子時,這個執行器就有多個,如下:

這樣這個xxl-job-executor-sample下就有兩個程式了,配置這個group下的的job的路由策略:

具體策略詳見com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum

FIRST(I18nUtil.getString("jobconf_route_first"), new ExecutorRouteFirst()),
LAST(I18nUtil.getString("jobconf_route_last"), new ExecutorRouteLast()),
ROUND(I18nUtil.getString("jobconf_route_round"), new ExecutorRouteRound()),
RANDOM(I18nUtil.getString("jobconf_route_random"), new ExecutorRouteRandom()),
CONSISTENT_HASH(I18nUtil.getString("jobconf_route_consistenthash"), new ExecutorRouteConsistentHash()),
LEAST_FREQUENTLY_USED(I18nUtil.getString("jobconf_route_lfu"), new ExecutorRouteLFU()),
LEAST_RECENTLY_USED(I18nUtil.getString("jobconf_route_lru"), new ExecutorRouteLRU()),
FAILOVER(I18nUtil.getString("jobconf_route_failover"), new ExecutorRouteFailover()),
BUSYOVER(I18nUtil.getString("jobconf_route_busyover"), new ExecutorRouteBusyover()),
SHARDING_BROADCAST(I18nUtil.getString("jobconf_route_shard"), null);

包括ExecutorRouteFirst(第一個),ExecutorRouteLast(最後一個),ExecutorRouteRound(輪詢),ExecutorRouteRandom(隨機),

ExecutorRouteConsistentHash(一致性hsah),ExecutorRouteLFU(最不經常使用),ExecutorRouteLRU(最近最久未使用)

ExecutorRouteFailover(故障轉移),ExecutorRouteBusyover(忙碌轉移)和jobconf_route_shard(分片廣播)

具體實現邏輯可以到這些類裡閱讀。

分片廣播這個有些不同,每個執行者程式裡都會執行該job。

xxl支援多種阻塞處理策略,

//序列:相同任務先進先出執行
SERIAL_EXECUTION("Serial execution"),
//丟棄後續排程:相同任務先進先出執行,執行已經執行的,新的任務不執行
DISCARD_LATER("Discard Later"),
//覆蓋之前排程:相同任務先進先出執行,已執行的立即停止,執行新的任務
COVER_EARLY("Cover Early");

相關文章