xxl-job--02--可視化界面各功能詳細介紹

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 可視化界面
    • 1 新增執行器
    • 2.新增任務
        • **執行器**:
        • **任務描述**:
        • **路由策略**:
        • **Cron**:
        • cron表達式
        • **運行模式**
        • JobHandler
        • 子任務:
        • 阻塞處理策略:
        • 任務參數:
        • 報警郵件:
        • 負責人:
    • 3. BEAN模式任務
    • 4.GLUE(Java)模式任務,
    • 5.分片廣播任務
    • 6.任務管理
    • 7.任務調度日志
      • 1.查看調度日志
      • 2.查看執行日志
      • 3.終止運行中的任務
      • 4.刪除執行日志
    • 8 執行失敗報警


可視化界面

1 新增執行器

在這里插入圖片描述
在這里插入圖片描述

新增執行器時,需要填寫的信息,如下所示:

  • AppName:這是用來唯一標識每個執行器集群的應用名稱,執行器會周期性地以AppName為參數進行自動注冊。可通過該配置自動發現注冊成功的執行器,供任務調度時使用。

  • 名稱:執行器的名稱,因為AppName限制字母數字等組成,可讀性不強,名稱可以提高執行器的可讀性。

  • 排序:執行器的排序,系統中需要執行器的地方,如任務新增,將會按照該排序讀取可用的執行器列表。

  • 注冊方式:調度中心獲取執行器地址的方式,有以下兩種:

  • 自動注冊:執行器自動進行執行器注冊,調度中心通過底層注冊表可以動態發現執行器機器地址。

  • 手動錄入:人工手動錄入執行器的地址信息,多地址逗號分隔,供調度中心使用。

  • 機器地址:只有在“注冊方式”為“手動錄入”時可編輯,支持人工維護執行器的地址信息。

注意,AppName的取值應該和示例工程的application.properties文件中的xxl.job.executor.appname字段的取值相同,注冊方式應該選擇自動注冊。新增完成之后,就可以在執行器列表中看到新建的執行器, 而我在寫入的時候將applcation.properties替換為了bootstrap.yml,但內容不變;

2.新增任務

在這里插入圖片描述
在這里插入圖片描述

執行器
  • 任務綁定的執行器,任務觸發調度時將會自動發現注冊成功的執行器,實現任務自動發現功能;另一方面,也可以方便地進行任務分組。每個任務必須綁定一個執行器,可以在“執行器管理”頁面進行設置。
任務描述
  • 任務的描述信息,便于任務管理。
路由策略
  • 當執行器集群部署時,提供豐富的路由策略,包括:
策略參數值詳細含義
第一個FIRST固定選擇第一個機器
最后一個LAST固定選擇最后一個機器
輪詢ROUND依次選擇執行
隨機RANDOM隨機選擇在線的機器
一致性HASHCONSISTENT_HASH每個任務按照Hash算法固定選擇某一臺機器,且所有任務均勻散列在不同機器上
最不經常使用LEAST_FREQUENTLY_USED使用頻率最低的機器優先被選舉
最近最久未使用LEAST_RECENTLY_USED最久未使用的機器優先被選舉
故障轉移FAILOVER按照順序依次進行心跳檢測,第一個心跳檢測成功的機器選定為目標執行器并發起調度
忙碌轉移BUSYOVER按照順序依次進行空閑檢測,第一個空閑檢測成功的機器選定為目標執行器并發起調度
分片廣播SHARDING_BROADCAST廣播觸發對應集群中所有機器執行一次任務,同時系統自動傳遞分片參數;可根據分片參數開發分片任務
Cron

觸發任務執行的Cron表達式,

cron表達式

在這里插入圖片描述

運行模式
  • BEAN模式:任務以JobHandler的方式維護在執行器端;需要結合 “JobHandler”屬性匹配執行器中的任務;

  • GLUE模式(Java):任務以源碼方式維護在調度中心;該模式的任務實際上是一段繼承自IJobHandler的Java類代碼并以“groovy”源碼的方式維護,它在執行器項目中運行,可使用@Resource/@Autowire注入執行器里中的其他服務;

  • GLUE模式(Shell):任務以源碼方式維護在調度中心;該模式的任務實際上是一段“shell”腳本;

  • GLUE模式(Python):任務以源碼方式維護在調度中心;該模式的任務實際上是一段“python”腳本;

  • GLUE模式(NodeJS):任務以源碼方式維護在調度中心;該模式的任務實際上是一段“nodejs”腳本;

JobHandler
  • 只有在運行模式為“BEAN模式”時生效,對應執行器中新開發的JobHandler類的“@JobHandler”注解自定義的value值。
    在這里插入圖片描述
子任務:
  • 每個任務都擁有一個唯一的任務ID(任務ID可以從任務列表獲取),當本任務執行結束并且執行成功時,將會觸發子任務ID所對應的任務的一次主動調度。
阻塞處理策略:

調度過于密集,執行器來不及處理時的處理策略:

  • 失敗告警(默認):調度失敗和執行失敗時,都將會觸發失敗報警,默認會發送報警郵件。
  • 失敗重試:調度失敗時,除了進行失敗告警之外,將會自動重試一次;注意在執行失敗時不會重試,而是根據回調返回值判斷是否重試。
策略參數值詳細含義
單機串行,默認SERIAL_EXECUTION調度請求進入單機執行器后,調度請求進入FIFO隊列并以串行方式運行
丟棄后續調度DISCARD_LATER調度請求進入單機執行器后,發現執行器存在運行的調度任務,本次請求將會被丟棄并標記為失敗
覆蓋之前調度COVER_EARLY調度請求進入單機執行器后,發現執行器存在運行的調度任務,將會終止運行中的調度任務并清空隊列,然后運行本地調度任務
任務參數:
  • 任務執行所需的參數,多個參數時用逗號分隔,任務執行時將會把多個參數轉換成數組傳入。
報警郵件:
  • 任務調度失敗時郵件通知的郵箱地址,支持配置多郵箱地址,配置多個郵箱地址時用逗號分隔。
負責人:
  • 任務的負責人。

3. BEAN模式任務

任務邏輯以JobHandler的形式存在于“執行器”所在項目中,如我們剛剛所演示的Hello,World 的入門案例
上述代碼有三點需要注意:

  1. 必須使用XXL-JOB的@JobHandler注解(第1行),指定JobHandler的名稱為“demoJobHandler”,在調度中心新建任務的JobHandler字段的取值要與此相同。
  2. 必須繼承IJobHandler抽象類(第3行),并且實現它的execute()方法,這是實現任務邏輯的方法。
  3. IJobHandler抽象類還有init()方法和destroy()方法,這兩個方法是空方法,在任務實例初始化和銷毀時調用,任務實現類可以選擇性地覆蓋這兩個方法。
    在這里插入圖片描述

4.GLUE(Java)模式任務,

任務以源碼方式維護在調度中心,支持通過Web IDE在線更新,實時編譯和生效,因此不需要指定JobHandler。開發流程如下:

Step-1 新建調度任務

  • 參考上文“任務調度屬性”對新建的任務進行參數配置,運行模式選擇“GLUE模式(Java)”,如下圖所示
    在這里插入圖片描述

調度中心會每隔15分鐘調度一次這個任務。

Step-2 開發任務代碼

  • 在任務列表中選中指定的GLUE(Java)任務,點擊該任務右側的“GLUE”按鈕,將會前往GLUE任務的Web
    IDE界面,在該界面支持對任務代碼進行開發(也可以在IDE中開發完成后,復制粘貼到編輯中)。
  • 版本回溯功能:在GLUE任務的Web IDE界面,選擇右上角下拉框“版本回溯”,會列出該GLUE任務的更新歷史(支持30個版本的版本回溯),選擇相應版本即可顯示該版本代碼,保存后GLUE代碼即回退到對應的歷史版本。GLUE任務代碼和Web IDE界面,如下圖所示:

在這里插入圖片描述

5.分片廣播任務

執行器集群部署時,任務路由策略選擇“分片廣播”的情況下,一次任務調度將會廣播觸發對應集群中所有執行器執行一次任務,同時傳遞分片參數,可以根據分片參數開發分片任務。

  • “分片廣播”以執行器為維度進行分片,支持動態擴容執行器集群從而動態增加分片數量,協同進行業務處理;在進行大數據量業務操作時可顯著提升任務處理能力和速度。
  • “分片廣播”和普通任務開發流程一致,不同之處在于可以獲取分片參數,通過分片參數進行分片業務處理。開發流程如下:

Step-1 開發JobHandler代碼

在示例工程的com.example.demo.jobhandler包中,新建ShardingJobHandler任務類,關鍵代碼如下所示:

@JobHandler(value="shardingJobHandler")
@Service
public class ShardingJobHandler extends IJobHandler {@Overridepublic ReturnT<String> execute(String param) throws Exception {// 分片參數ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();XxlJobLogger.log("分片參數:當前分片序號 = {0}, 總分片數 = {1}", shardingVO.getIndex(), shardingVO.getTotal());// 業務邏輯for (int i = 0; i < shardingVO.getTotal(); i++) {if (i == shardingVO.getIndex()) {XxlJobLogger.log("第 {0} 片, 命中分片開始處理", i);} else {XxlJobLogger.log("第 {0} 片, 忽略", i);}}return SUCCESS;}
}

上述代碼的第9行獲取分片參數,第10行獲取分片參數的兩個屬性:

  • shardingVO.getIndex() 當前分片序號(從0開始),執行器集群列表中當前執行器的序號。
  • shardingVO.getTotal() 總分片數,執行器集群的總機器數量。

Step-2 新建調度任務

參考上文“任務調度屬性”對新建的任務進行參數配置,運行模式選擇“BEAN模式”,路由策略選擇“分片廣播”,JobHandler屬性填寫任務注解@JobHandler中定義的值,如下圖所示:

在這里插入圖片描述

調度中心會每隔15分鐘廣播調度一次shardingJobHandler任務(因為Corn表達式設置了15分鐘執行一次)。

分片廣播的路由策略不僅適用于BEAN運行模式,而且也適用于GLUE(Java)運行模式。這項功能適用于以下業務場景:

  1. 分片任務場景
    10個執行器的集群來處理10w條數據,每臺機器只需要處理1w條數據,耗時降低10倍。
  2. 廣播任務場景
    廣播執行器機器運行shell腳本、廣播集群節點進行緩存更新等。

6.任務管理

在這里插入圖片描述
在任務列表中,可以看到每個任務的任務ID、任務描述、運行模式、Cron、負責人和狀態等信息。用戶可以對任務進行以下幾種操作:

  • 執行:手動觸發一次任務調度,不影響原有調度規則。

  • 暫停/恢復:可對任務進行“暫停”和“恢復”操作。需要注意的是,此處的暫停/恢復僅針對任務的后續調度觸發行為,不會影響到已經觸發的調度任務。

  • 日志:可以查看任務歷史調度日志。在歷史調入日志界面可查看每次任務調度的調度結果、執行結果等,點擊“執行日志”按鈕可查看執行器完整日志。

  • 編輯:在彈出的“編輯任務”界面更新任務屬性后保存即可,可以修改設置的任務屬性信息。

  • GLUE:該操作僅針對GLUE任務。將會前往GLUE任務的Web IDE界面,在該界面支持對任務代碼進行開發。

  • 刪除:刪除這個任務。

7.任務調度日志

  • 在XXL-JOB調度中心,點擊進入“調度日志”頁面。

1.查看調度日志

在“調度日志”頁面可以查看每次任務調度的調度結果、執行結果等信息,
在這里插入圖片描述

從調度日志可以獲取以下信息:

  • 調度時間:“調度中心”觸發本次調度并向“執行器”發送任務執行信號的時間。

  • 調度結果:“調度中心”觸發本次調度的結果,200表示成功,500或其他表示失敗。

  • 調度備注:“調度中心”觸發本次調度的日志信息。

  • 執行時間:“執行器”中本次任務執行結束后回調的時間。

  • 執行結果:“執行器”中本次任務執行的結果,200表示成功,500或其他表示失敗。

  • 執行備注:“執行器”中本次任務執行的日志信息。

在示例工程中,調度日志位于/data/applogs/xxl-job/xxl-job-demo.log,可以在logback.xml文件中進行配置。

2.查看執行日志

點擊某行日志右側的 “執行日志” 按鈕,可跳轉至執行日志界面,可以查看業務代碼中打印的完整日志,如下圖:
在這里插入圖片描述

3.終止運行中的任務

這項功能只針對執行中的任務。在任務日志頁面,點擊右側的“終止任務”按鈕,將會向本次任務對應的執行器發送任務終止請求,將會終止掉本次任務,同時會清空掉整個任務執行隊列,如下圖所示
在這里插入圖片描述

  • 任務終止是通過“interrupt”執行線程的方式實現的,將會觸發“InterruptedException”異常。因此,如果JobHandler內部捕獲到該異常并消化掉的話,任務終止功能將不起作用。
  • 因此, 如果遇到上述任務終止不起作用的情況,需要在JobHandler中針對“InterruptedException”異常進行特殊處理(向上拋出)。另外,在JobHandler中開啟子線程時,子線程也不可捕獲處理“InterruptedException”,應該主動向上拋出。

4.刪除執行日志

在任務日志頁面,選擇執行器和任務之后,點擊右側的“清理”按鈕將會出現“日志清理”彈框,彈框中支持選擇不同類型的日志清理策略,選中后點擊“確定”按鈕即可進行日志清理操作,如下圖所示:
在這里插入圖片描述

8 執行失敗報警

概述: 當定時任務執行失敗的時候,日志會自動記錄失敗結果,并且在cdmtc.xxl-job里面的application.properties中配置了email郵箱時,可郵件提醒;

效果演示:
在這里插入圖片描述
每一次執行失敗均可提醒
在這里插入圖片描述
開啟短信提醒功能,需要從郵箱中獲取授權碼,每個郵箱的獲取方式可能不同,可具體百度;qq郵箱為從 設置 按鈕中的 賬戶 ,然后選擇POP3/SMTP 服務,點擊開啟,按提示獲取授權碼即可;
在這里插入圖片描述
獲取授權碼圖示:
在這里插入圖片描述

授權碼就是配置文件中的password

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716798.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716798.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716798.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

01.18 校招 實習 內推 面經

綠*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;內推/實習/校招匯總表格 1、校招 | 中國航天科工四院四部2024春季校園招聘 校招 | 中國航天科工四院四部2024春季校園招聘 2、阿里集團24屆秋招「空缺崗位」大盤點 校招 | 阿里集團24屆校招補錄大盤點&#xff0…

全量知識系統問題及SmartChat給出的答復 之15 幣圈生態鏈

Q40. 今天聊聊關于幣圈和幣圈生態方面&#xff0c;尤其是在建立和保護各種幣圈生態鏈的問題。 主要包括各種主體、 各種權益 和 各種幣及其幣圈的 分類&#xff0c;包括 概念、關系和 鏈接和斷鏈的判斷根據等等&#xff0c; 是否有一個比較清晰的體系結構呢&#xff1f; 因為現…

java Springboot vue 健身房系統,簡單練手項目

該項目主要分為管理員和會員模塊 管理員具有&#xff1a;會員管理&#xff0c;器材管理,員工管理&#xff0c;健身課程管理 會員模塊&#xff0c;可以在線報名健身課程&#xff0c;查看自己課程 采用VUE前端開發和springboot后端開發&#xff0c;極簡代碼編寫&#xff0c;沒…

融資項目——登錄接口的開發

1. 首先創建登錄與用戶信息VO類。 Data ApiModel(description "登陸對象") public class LoginVO {ApiModelProperty("手機號")private String mobile;ApiModelProperty("密碼")private String password;ApiModelProperty("用戶類型"…

藍橋每日一題 (差分)3月3號

//3279改變數組元素 自己做TLE&#xff1a;奈何想不出怎么用差分 #include<bits/stdc.h> using namespace std; //3279 改變數組元素&#xff08;超時&#xff09; const int N2e510; vector<int>a; int t,n; int main() {cin>>t;while(t--){cin>>n;…

ubuntu20.04安裝docker及運行

ubuntu20.04安裝docker及運行 ubuntu環境版本 Ubuntu Focal 20.04 (LTS) 查看系統版本 rootubuntu20043:~# cat /proc/version Linux version 5.15.0-78-generic (builddlcy02-amd64-008) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) …

Vue(黑馬學習筆記)

Vue概述 通過我們學習的htmlcssjs已經能夠開發美觀的頁面了&#xff0c;但是開發的效率還有待提高&#xff0c;那么如何提高呢&#xff1f;我們先來分析下頁面的組成。一個完整的html頁面包括了視圖和數據&#xff0c;數據是通過請求從后臺獲取的那么意味著我們需要將后臺獲取…

通過XML調用CAPL腳本進行測試(新手向)

目錄 0 引言 1 XML簡介 2 通過XML調用CAPL腳本 0 引言 紀念一下今天這個特殊日子&#xff0c;四年出現一次的29號。 在CANoe中做自動化測試常用的編程方法有CAPL和XML兩種&#xff0c;二者各有各的特色&#xff0c;對于CAPL來說新手肯定是更熟悉一些&#xff0c;因為說到在C…

使用Go Validator在Go應用中有效驗證數據

作為一名開發者&#xff0c;確保Go應用中處理的數據是有效和準確的非常重要。Go Validator是一個開源的數據驗證庫&#xff0c;為Go結構體提供強大且易于使用的數據驗證功能。本篇文章將介紹Go Validator庫的主要特點以及如何在Go應用中使用它來有效驗證數據。 什么是Go Valid…

Vue開發實例(五)修改項目入口頁面布局

修改項目入口 一、創建新入口二、分析代碼&#xff0c;修改入口三、搭建項目主頁面布局1、Container 布局容器介紹2、創建布局3、布局器鋪滿屏幕4、創建Header頁面5、加入Aside、Main和Footer模塊 一、創建新入口 創建新的入口&#xff0c;取消原來的HelloWorld入口 參考代碼…

劍指offer刷題記錄Day2 07.數組中重復的數字 ---> 11.旋轉數組的最小數字

名人說&#xff1a;莫道桑榆晚&#xff0c;為霞尚滿天。——劉禹錫&#xff08;劉夢得&#xff0c;詩豪&#xff09; 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 目錄 1、重建二叉樹①代碼實現&#xff08;帶注釋&am…

【重溫設計模式】職責鏈模式及其Java示例

職責鏈模式的介紹 在開發過程中&#xff0c;我們經常會遇到這樣的問題&#xff1a;一個請求需要經過多個對象的處理&#xff0c;但是我們并不知道具體由哪個對象來處理&#xff0c;或者說&#xff0c;我們希望由接收到請求的對象自己去決定如何處理或者是將請求傳遞給下一個對…

CSS 選擇器的常見用法

這里CSS選擇器主要分為以下這幾種&#xff1a;1. 標簽選擇器 2. class選擇器 3. id選擇器 4. 復合選擇器 5. 通配符選擇器 CSS 選擇器的主要功能就是選中??指定的標簽元素. 選中了元素, 才可以設置元素的屬性. 1.標簽選擇器 <style>p{color: red;} </style> &…

表單控件上的事件

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>光標聚焦和失焦事件</title><style type"text/css">.text{color: red;font-size: 12px;}</style> </head> <bod…

【深度學習筆記】計算機視覺——錨框

錨框 目標檢測算法通常會在輸入圖像中采樣大量的區域&#xff0c;然后判斷這些區域中是否包含我們感興趣的目標&#xff0c;并調整區域邊界從而更準確地預測目標的真實邊界框&#xff08;ground-truth bounding box&#xff09;。 不同的模型使用的區域采樣方法可能不同。 這里…

吳恩達deeplearning.ai:正則化對于偏方差的影響制定用于性能評估的基準

以下內容有任何不理解可以翻看我之前的博客哦&#xff1a;吳恩達deeplearning.ai專欄 這節我們看看正則化系數 文章目錄 以線性回歸為例交叉驗證誤差對于確定 λ \lambda λ的作用 指定用于性能評估的基準語音識別的例子 以線性回歸為例 讓我們舉一個例子&#xff1a; 模型&am…

Outlook郵箱IMAP密碼怎么填寫?賬戶設置?

Outlook郵箱IMAP密碼是什么&#xff1f;Outlook如何設置IMAP&#xff1f; 許多用戶會選擇通過IMAP協議將郵箱與各種郵件客戶端進行連接。而在設置過程中&#xff0c;填寫IMAP密碼是必不可少的一步。那么&#xff0c;Outlook郵箱的IMAP密碼應該如何填寫呢&#xff1f;接下來&am…

【Linux】深入理解ls命令

&#x1f34e;個人博客&#xff1a;個人主頁 &#x1f3c6;個人專欄&#xff1a;Linux ?? 功不唐捐&#xff0c;玉汝于成 目錄 前言 正文 基本用法 常用選項 示例 高級用法 結語 我的其他博客 前言 在 Linux 系統中&#xff0c;ls 命令是一個強大而又基礎的工具&am…

高刷顯示器 - HKC VG253KM

&#x1f525;&#x1f525; 今天來給大家揭秘一款電競神器 - HKC VG253KM 高刷電競顯示器&#xff01;這款顯示器可是有著雄鷹展翅般的設計靈感&#xff0c;背后的大鵬展翅鷹翼圖騰讓人過目難忘。那么&#xff0c;這款顯示器到底有哪些過人之處呢&#xff1f;一起來看看吧&…

【MySQL】基于Docker搭建MySQL一主二從集群

本文記錄了搭建mysql一主二從集群&#xff0c;這樣的一個集群master為可讀寫&#xff0c;slave為只讀。過程中使用了docker&#xff0c;便于快速搭建單體mysql。 1&#xff0c;準備docker docker的安裝可以參考之前基于yum安裝docker的文章[1]。 容器相關命令[2]。 查看正在…