










實際工作中任務的冪等性















一個任務10分鍾就已經執行完成,10分鍾之后就需要kill掉這個資源,停止掉這個任務


任務終止不能手動全部使用try catch進行處理,對於線程終止的異常,我們需要拋出去

上面的這個代碼才是正確的
執行分布式任務的時候一定要注意任務的冪等性,任務異常退出之后,第二次進來之前執行過的任務,不會在重新執行
















每10秒鍾執行一次定時任務
視頻來自博客:https://www.bilibili.com/video/BV1sX4y1K7ys?p=12
XXL-JOB高可用的方案


定時任務的集群的功能:一個任務部署了3個節點,調度中心如何對任務進行調度了
第一個:選擇第一個注冊到調度中心的節點來執行任務
最后一個:選擇最后一個注冊到調度中心的節點來執行任務
輪詢:定時任務每隔5秒執行一次,調度中心第一選擇第一個節點執行,5秒之后選擇第二個節點來執行
故障轉移:第一個節點在執行的過程中失敗了,第一個節點進程掛了,調度中心選擇第二個節點來執行
忙碌轉移:第一個節點在執行任務的過程中,如果執行的過程中第一個節點的線程池資源已經被全部使用完成了,調度中心會遷移到第二個節點來執行
分片廣播:分片廣播的目的是提高任務的執行效率,調度中心讓三個節點同時執行分片任務。一個完成的任務是從數據庫中查詢出前去3000條數據,同一時間
第一個節點查詢前1000條數據,第二個接觸查詢前1000到2000條數據,第三個節點查詢前2000到3000條數據,並行執行提高效率

這個任務調度中心每隔2秒會調度執行一次

這里任務的阻塞處理策略:列如一個定時任務2秒被調動中心調度一次,但是任務的業務執行需要5秒,第二個調度的時候,業務的5秒還沒有執行完成,這個時候
單機串行:表示等第一個任務執行完成之后,在執行第二次被調度的任務,任務每隔2秒會被調度執行會造成大量的任務被阻塞
丟棄后續調度:如果現在還有任務沒有執行完成,后續調度的任務被直接丟棄
覆蓋之前調度:把當前正在執行的任務終止,執行新的任務

子任務ID表示只有當前的任務執行完成之后,才會去執行這里填寫的子任務,這里填寫子任務ID就可以了,調度中心在當前的任務執行完成之后會自動的去執行子任務ID

任務超時時間:表示一個任務在執行的過程中超過了超時時間,調動中心會終止該任務
