xxl-job--01--簡介

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

文章目錄

  • 1.xxl-job
    • 1. 1 發展歷史
    • 1.2 XXL-JOB的系統架構
    • 1.3 xxl-job與其他框架對比
  • 2. XXL-JOB的使用
    • 2.1 準備工作- 配置調度中心
        • XXL-JOB的數據表
    • 2.2 配置執行器
      • 1 引入依賴包:
      • 2 配置配置項
      • 3 創建XxlJobConfig.java
    • 2.3 配置可視化界面
      • 1. 配置數據庫路徑以及其他信息
      • 2. 配置登陸賬號密碼
      • 3. 啟動項目:XxlJobAdminApplication.java
      • 4. 登陸可視化界面 地址: http://10.4.7.214:8080/xxl-job-admin/jobinfo
    • 2.4 開發第一個任務 Hello,world
      • 1.首先在配置好了執行器的微服務下創建定時任務代碼:
      • 2.依次啟動微服務項目(Eureka,config…等)
      • 3.啟動調度中心: XxlJobAdminApplication.java
      • 4.登錄調度中心,輸入賬號密碼,然后配置執行器
      • 5.進入==任務管理==頁面
      • 6.點擊新增任務,配置對應相關參數
      • 7.返回任務管理頁面
      • 8.如果點擊執行任務,則會只執行一次
      • 9.如果點擊日志,則跳轉至調度日志頁面
      • 10.如果點擊啟動,則直接==啟動定時任務(按照Corn表達式定時執行任務==),并且啟動按鈕會變成停止按鈕
      • 11.如果點擊編輯,則進入定時任務的更新頁面
    • 2.5 運行報表


1.xxl-job

  • XXL-JOB是一個分布式任務調度平臺,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼并接入多家公司線上產品線,開箱即用。

1. 1 發展歷史

在這里插入圖片描述

源碼地址: https://github.com/xuxueli/xxl-job
中文文檔:https://www.xuxueli.com/xxl-job/

在這里插入圖片描述

1.2 XXL-JOB的系統架構

  • ? xxl-job框架主要用于處理分布式的定時任務,其主要由調度中心和執行器組成。
    在這里插入圖片描述

調度模塊(調度中心):

  • 負責管理調度信息,按照調度配置發出調度請求,自身不承擔業務代碼。調度系統與任務解耦,提高了系統可用性和穩定性,同時調度系統性能不再受限于任務模塊;
  • 支持可視化、簡單且動態的管理調度信息,包括任務新建,更新,刪除,GLUE開發和任務報警等,所有上述操作都會實時生效,同時支持監控調度結果以及執行日志,支持執行器Failover。

執行模塊(執行器):

  • 負責接收調度請求并執行任務邏輯。任務模塊專注于任務的執行等操作,開發和維護更加簡單和高效;
  • 接收“調度中心”的執行請求、終止請求和日志請求等。

調度中心和執行器兩個模塊分開部署,相互分離,兩者之間通過RPC進行通信,其中調度中心主要是提供一個平臺,管理調度信息,發送調度請求,自己不承擔業務代碼,而執行器接受調度中心的調度執行業務邏輯。
在這里插入圖片描述

1.3 xxl-job與其他框架對比

分布式定時任務調度的框架:quartz、elastic-job、xxl-job

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

2. XXL-JOB的使用

2.1 準備工作- 配置調度中心

下載官方源碼

  • 將項目中 /xxl-job/doc/db/ 目錄下的 tables_xxl_job.sql 的數據庫表導入數據庫
XXL-JOB的數據表

在這里插入圖片描述

在這里插入圖片描述

2.2 配置執行器

1 引入依賴包:

     <!-- xxl-job-core --><dependency><groupId>com.cdmtc</groupId><artifactId>xxl-job-core</artifactId><version>2.0.2</version></dependency>

2 配置配置項

在這里插入圖片描述
XXL-JOB執行器的相關配置項的意義,如下所示:

  • xxl.job.admin.addresses
    調度中心的部署地址。若調度中心采用集群部署,存在多個地址,則用逗號分隔。執行器將會使用該地址進行”執行器心跳注冊”和”任務結果回調”。

  • xxl.job.executor.appname
    執行器的應用名稱,它是執行器心跳注冊的分組依據。

  • xxl.job.executor.ip
    執行器的IP地址,用于”調度中心請求并觸發任務”和”執行器注冊”。執行器IP默認為空,表示自動獲取IP。多網卡時可手動設置指定IP,手動設置IP時將會綁定Host。

  • xxl.job.executor.port
    執行器的端口號,默認值為9999。單機部署多個執行器時,注意要配置不同的執行器端口。

  • xxl.job.accessToken
    執行器的通信令牌,非空時啟用。

  • xxl.job.executor.logpath
    執行器輸出的日志文件的存儲路徑,需要擁有該路徑的讀寫權限。

  • xxl.job.executor.logretentiondays
    執行器日志文件的定期清理功能,指定日志保存天數,日志文件過期自動刪除。限制至少保存3天,否則功能不生效。

3 創建XxlJobConfig.java

package com.cdmtc.config;import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** xxl-job config** @author xuxueli 2017-04-28*/
@Configuration
public class XxlJobConfig {private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);@Value("${record.xxl.job.admin.addresses}")private String adminAddresses;@Value("${record.xxl.job.executor.appname}")private String appName;@Value("${record.xxl.job.executor.ip}")private String ip;@Value("${record.xxl.job.executor.port}")private int port;@Value("${record.xxl.job.accessToken}")private String accessToken;@Value("${record.xxl.job.executor.logpath}")private String logPath;@Value("${record.xxl.job.executor.logretentiondays}")private int logRetentionDays;@Bean(initMethod = "start", destroyMethod = "destroy")public XxlJobSpringExecutor xxlJobExecutor() {logger.info(">>>>>>>>>>> xxl-job config init.");XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppName(appName);xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}/*** 針對多網卡、容器內部署等情況,可借助 "spring-cloud-commons" 提供的 "InetUtils" 組件靈活定制注冊IP;**      1、引入依賴:*          <dependency>*             <groupId>org.springframework.cloud</groupId>*             <artifactId>spring-cloud-commons</artifactId>*             <version>${version}</version>*         </dependency>**      2、配置文件,或者容器啟動變量*          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'**      3、獲取IP*          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();*/}

XxlJobConfig配置類有兩點需要注意:

  1. 組件掃描
    第2行使用@ComponentScan注解,掃描com.example.demo.jobhandler包,將其中的任務處理器加載至Spring容器。
  2. 獲取執行器實例
    第29行的xxlJobExecutor()方法會實例化一個XXL-JOB執行器對象,執行器初始化時調用它的start()方法

2.3 配置可視化界面

1. 配置數據庫路徑以及其他信息

在這里插入圖片描述

2. 配置登陸賬號密碼

  • 可修改為其他賬號密碼

在這里插入圖片描述

3. 啟動項目:XxlJobAdminApplication.java

4. 登陸可視化界面 地址: http://10.4.7.214:8080/xxl-job-admin/jobinfo

  • 【可先等配置好了執行器再進行登陸,端口可自行配置或修改,默認是8080,這里演示的端口號為8888】
    在這里插入圖片描述

2.4 開發第一個任務 Hello,world

1.首先在配置好了執行器的微服務下創建定時任務代碼:

在這里插入圖片描述

2.依次啟動微服務項目(Eureka,config…等)

3.啟動調度中心: XxlJobAdminApplication.java

4.登錄調度中心,輸入賬號密碼,然后配置執行器

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

5.進入任務管理頁面

在這里插入圖片描述

6.點擊新增任務,配置對應相關參數

在這里插入圖片描述

7.返回任務管理頁面

在這里插入圖片描述

8.如果點擊執行任務,則會只執行一次

在這里插入圖片描述

9.如果點擊日志,則跳轉至調度日志頁面

在這里插入圖片描述

10.如果點擊啟動,則直接啟動定時任務(按照Corn表達式定時執行任務),并且啟動按鈕會變成停止按鈕

在這里插入圖片描述

  • 如果沒有點擊停止按鈕的話,則會一直是啟動狀態,如果點擊了停止按鈕,則定時任務停止,Corn表達式不再生效;

11.如果點擊編輯,則進入定時任務的更新頁面

在這里插入圖片描述

  • 如果點擊刪除,則直接刪除此定時任務配置;

  • 如果點擊執行器,則展示該執行器下的對應定時任務。

  • 任務描述和JobHandler則為搜索條件,對定時任務配置進行搜索;

2.5 運行報表

  • 可視化直觀展示定時任務運行情況
  • 圖示如下:
    在這里插入圖片描述

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

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

相關文章

vue cesium加載點與定位到指定位置

vue cesium定位到指定位置 window.viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(point.longDeg, point.latDeg, 6500000), orientation: {heading: 6.2079384332084935, roll: 0.00031509431759868534, pitch: -1.535}, duration: 3})vue cesium加載點 …

【蛀牙】如何選擇牙刷,牙膏和牙杯(含其他日常牙具:牙線,漱口水,沖牙器)

程序員生活指南之 【蛀牙】如何選擇牙刷&#xff0c;牙膏和牙杯&#xff08;含其他日常牙具&#xff1a;牙線&#xff0c;漱口水&#xff0c;沖牙器&#xff09; 文章目錄 一、如何選擇牙刷&#xff0c;牙膏和牙杯1、如何選擇牙刷2、如何選擇牙膏3、如何選擇牙杯 二、日常牙具&…

為什么HashMap的鍵值可以為null,而ConcurrentHashMap不行?

寫在開頭 今天在寫《HashMap很美好&#xff0c;但線程不安全怎么辦&#xff1f;ConcurrentHashMap告訴你答案&#xff01;》這篇文章的時候&#xff0c;漏了一個知識點&#xff0c;知道晚上吃飯的時候才凸顯想到&#xff0c;關于ConcurrentHashMap在存儲Key與Value的時候&…

【Java】面向對象之多態超級詳解!!

文章目錄 前言一、多態1.1 多態的概念1.2 多態的實現條件1.3 重寫1.3.1方法重寫的規則1.3.2重寫和重載的區別 1.4 向上轉型和向下轉型1.4.1向上轉型1.4.2向下轉型 1.5 多態的優缺點1.5.1 使用多態的好處1.5.2 使用多態的缺陷 結語 前言 為了深入了解JAVA的面向對象的特性&…

基于yolov5的電瓶車和自行車檢測系統,可進行圖像目標檢測,也可進行視屏和攝像檢測(pytorch框架)【python源碼+UI界面+功能源碼詳解】

功能演示&#xff1a; 基于yolov5的電瓶車和自行車檢測系統_嗶哩嗶哩_bilibili &#xff08;一&#xff09;簡介 基于yolov5的電瓶車和自行車檢測系統是在pytorch框架下實現的&#xff0c;這是一個完整的項目&#xff0c;包括代碼&#xff0c;數據集&#xff0c;訓練好的模型…

協程庫項目—日志模塊

日志模塊程序結構圖 sylarLog ├── LogLevel&#xff08;日志級別封裝類&#xff09; │ ├── 提供“從日志級別枚舉值轉換到字符串”、“從字符串轉換相應的日志級別枚舉值”等方法 ├── LogEvent&#xff08;日志事件類&#xff09; │ ├── 封裝日志事件的屬性…

Unity(第二十一部)動畫的基礎了解(感覺不了解其實也行)

1、動畫組件老的是Animations 動畫視頻Play Automatically 是否自動播放Animate Physics 驅動方式&#xff0c;勾選后是物理驅動Culling Type 剔除方式 默認總是動畫化就會一直執行下去&#xff0c;第二個是基于渲染播放&#xff08;離開鏡頭后不執行&#xff09;&#xff0c; …

高性能服務系列【二】CPU和內存

現代計算機的系統架構十分復雜。在服務器中&#xff0c;雙路處理器已經十分常見。最近Arm處理器實現雙路共384核心&#xff0c;要知道目前Linux內核最高只支持256核&#xff0c;這就有點尷尬。 多路處理器將越來越普遍&#xff0c;對性能的影響和傳統架構有不小的差別&#xf…

MySQL中json類型的字段

有些很復雜的信息&#xff0c;我們一般會用擴展字段傳一個json串&#xff0c;字段一般用text類型存在數據庫。mysql5.7以后支持json類型的字段&#xff0c;還可以進行sql查詢與修改json內的某個字段的能力。 1.json字段定義 ip_info json DEFAULT NULL COMMENT ip信息, 2.按…

GO基本類型一些記錄

基本類型一些記錄 1.直接粘貼文本進println(" ")2.中文字符串長度別用len( )3.byte本質是uint8 1.直接粘貼文本進println(" ") GoLand會自動補充轉義符 2.中文字符串長度別用len( ) 用相應編碼庫的方法&#xff0c;一般utf8即可 utf8.RuneCountInStrin…

PySide6實現word轉化pdf

目錄 一:實現思路 二:實現代碼 三:完整代碼和界面 一:實現思路 利用PySide6創建兩個按鈕和一個顯示區域,一個選擇文件按鈕,一個轉化按鈕和信息展示,操作文件按鈕選擇一個待轉化的word文檔。并且展示文件路徑到信息展示區,操作轉化按鈕,讀取選擇的文件轉化為pdf。并…

ThreadLocal介紹

文章目錄 ThreadLocal源碼分析&#xff1a;set方法get方法remove方法 ThreadLocal內存泄漏問題 ThreadLocal ThreadLocal提供了線程局部變量&#xff0c;每個線程都可以通過set和get方法來對這個變量進行操作&#xff0c;但不會和其他線程的局部變量沖突&#xff0c;實現了線程…

Doris實戰——拈花云科的數據中臺實踐

目錄 前言 一、業務背景 二、數據中臺1.0—Lambda 三、新架構的設計目標 四、數據中臺2.0—Apache Doris 4.1 新架構數據流轉 4.2 新架構收益 五、新架構的落地實踐 5.1 模型選擇 5.1.1 Unique模型 5.1.2 Aggregate模型 5.2 資源管理 5.3 批量建表 5.4 計算實現…

Stable Diffusion 模型分享:Realistic Stock Photo(真實的庫存照片)

本文收錄于《AI繪畫從入門到精通》專欄&#xff0c;專欄總目錄&#xff1a;點這里。 文章目錄 模型介紹生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下載地址 模型介紹 條目內容類型大模型基礎模型SDXL 1.0來源CIVITAI作者PromptSharingSamaritan文件名稱reali…

原生GO開發的博客系統

Go博客實戰教程&#xff0c;是一個練手級項目教程&#xff0c;使用原生Go開發&#xff0c;未使用任何框架。 如何使用原生Go開發一個web項目 循序漸進&#xff0c;掌握編程思維和思路 初步具有工程思維&#xff0c;能適應一般的開發工作 1. 搭建項目 package mainimport (&q…

Vue3_2024_1天【Vue3創建和響應式,對比Vue2】

前言&#xff1a; Vue3對比Vue2版本&#xff0c;它在性能、功能、易用性和可維護性方面都有顯著的提升和改進。 性能優化&#xff1a;模板編譯器的優化、對Proxy的支持以及使用了更加高效的Virtual DOM算法等。這使得Vue3的打包大小減少了41%&#xff0c;初次渲染提速55%&#…

【MATLAB源碼-第153期】基于matlab的OFDM系統插入導頻和訓練符號兩種信道估計方式誤碼率對比仿真。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 OFDM&#xff08;Orthogonal Frequency Division Multiplexing&#xff0c;正交頻分復用&#xff09;是一種高效的無線信號傳輸技術&#xff0c;廣泛應用于現代通信系統&#xff0c;如Wi-Fi、LTE和5G。OFDM通過將寬帶信道劃分…

使用docker方式測試部署django項目(客戶催)

需求 1&#xff1a;已有django項目–weidanyewu 2&#xff1a;希望在服務器上測試部署–客戶催 3&#xff1a;沒完善django的啟動 4&#xff1a;使用臨時數據庫進行演示 5&#xff1a;使用python3.10版本鏡像 6&#xff1a;展示端口80 7&#xff1a;后臺執行django程序 8&#…

【C語言】熟悉文件順序讀寫函數

前言 本篇詳細介紹了 文件順序讀寫常用函數&#xff0c;快來看看吧~ 歡迎關注個人主頁&#xff1a;逸狼 創造不易&#xff0c;可以點點贊嗎~ 如有錯誤&#xff0c;歡迎指出~ 目錄 前言 ?編輯 文件順序讀寫函數 fgetc函數 示例 fputc函數 逐個字符寫入 寫入26個字母 文…

手寫模擬器,解放雙手!效果炸裂的生產工具

手寫模擬器是一款基于Handright的仿手寫圖片生成軟件&#xff0c;可以讓你的電腦和手機也能寫出漂亮的手寫字&#xff0c;你只需要輸入你想要寫的內容&#xff0c;選擇你喜歡的字體和背景&#xff0c;就可以生成一張高仿真的手寫圖片&#xff0c;用于各種場合&#xff0c;比如做…