欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot集成xxl-job實(shí)現(xiàn)超牛的定時(shí)任務(wù)的步驟詳解

 更新時(shí)間:2023年10月27日 08:47:08   作者:掉頭發(fā)的王富貴  
XXL-JOB是一個(gè)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速、學(xué)習(xí)簡(jiǎn)單、輕量級(jí)、易擴(kuò)展,現(xiàn)已開(kāi)放源代碼并接入多家公司線上產(chǎn)品線,開(kāi)箱即用,本文給大家介紹了SpringBoot集成xxl-job實(shí)現(xiàn)超牛的定時(shí)任務(wù),需要的朋友可以參考下

開(kāi)始介紹xxl-job的使用前我們先認(rèn)識(shí)一下它的作者:Xuxueli(許雪里 )

Xuxueli(許雪里 )是中國(guó)知名的開(kāi)源社區(qū)貢獻(xiàn)者和技術(shù)專家。他是XXL-Job的創(chuàng)始人和核心開(kāi)發(fā)者,也是XXL-Job的主要維護(hù)者。他在分布式任務(wù)調(diào)度領(lǐng)域有著豐富的經(jīng)驗(yàn)和深厚的技術(shù)功底。可以看到xxl-job是一個(gè)優(yōu)秀的國(guó)產(chǎn)貨!

其實(shí)市面上有很多類似的產(chǎn)品:

產(chǎn)品名稱國(guó)產(chǎn)/國(guó)外開(kāi)源/商業(yè)主要特點(diǎn)
XXL-Job國(guó)產(chǎn)開(kāi)源簡(jiǎn)單易用、分布式支持、可視化監(jiān)控、擴(kuò)展性強(qiáng)、活躍的社區(qū)支持
Quartz國(guó)外開(kāi)源靈活的調(diào)度配置、支持集群部署、可靠的任務(wù)調(diào)度、廣泛應(yīng)用
Airflow國(guó)外開(kāi)源基于DAG的任務(wù)調(diào)度、可視化工作流編排、豐富的調(diào)度功能、社區(qū)活躍
Azkaban國(guó)外開(kāi)源分布式任務(wù)調(diào)度、可視化工作流編排、易于使用、支持多種調(diào)度方式
TAC國(guó)產(chǎn)商業(yè)分布式任務(wù)調(diào)度、高可靠性、高性能、可視化監(jiān)控、企業(yè)級(jí)支持
Elastic Job國(guó)產(chǎn)開(kāi)源分布式任務(wù)調(diào)度、彈性擴(kuò)展、高可靠性、支持多種任務(wù)類型、與Elasticsearch、Zookeeper等集成

包括之前博主講的 Elastic Job

廢話不多說(shuō),現(xiàn)在我們來(lái)開(kāi)始把xxl-job集成到SpringBoot(SpringCloud)中。

第一步,下載官方的倉(cāng)庫(kù)

沒(méi)錯(cuò),你沒(méi)看錯(cuò),是把他的倉(cāng)庫(kù)克隆下來(lái),和其他的框架不同(在項(xiàng)目中引入jar包即可)

git clone https://gitee.com/xuxueli0323/xxl-job.git

gitee地址:https://gitee.com/xuxueli0323/xxl-job/tree/master

之后用idea打開(kāi)是這樣的

第二步,連接mysql

xxl-job存儲(chǔ)的介質(zhì)是mysql,所以我們需要執(zhí)行一下sql文件來(lái)創(chuàng)建一個(gè)庫(kù)。找到官方的sql文件

/xxl-job/doc/db/tables_xxl_job.sql

在我們本地的mysql直接執(zhí)行,執(zhí)行之后會(huì)得到一個(gè)名字叫xxl-job的庫(kù)

這里一共八個(gè)表,他們的作用是:

  • xxl_job_user表:該表用于存儲(chǔ)用戶信息,包括用戶的登錄名、密碼、角色等。用于用戶的身份認(rèn)證和權(quán)限管理。

  • xxl_job_logglue表:該表用于存儲(chǔ)任務(wù)的日志關(guān)聯(lián)信息,包括任務(wù)的執(zhí)行日志ID、任務(wù)的日志時(shí)間等。用于關(guān)聯(lián)任務(wù)的執(zhí)行日志和日志文件。

  • xxl_job_group表:該表用于存儲(chǔ)任務(wù)分組信息,包括分組的名稱、排序等。用于對(duì)任務(wù)進(jìn)行分組管理,方便任務(wù)的分類和查找。

  • xxl_job_info表:該表用于存儲(chǔ)任務(wù)的基本信息,包括任務(wù)名稱、任務(wù)分組、任務(wù)描述、任務(wù)執(zhí)行類、任務(wù)參數(shù)等。每個(gè)任務(wù)在該表中都有一條記錄。

  • xxl_job_log表:該表用于存儲(chǔ)任務(wù)的執(zhí)行日志,包括任務(wù)的執(zhí)行結(jié)果、執(zhí)行時(shí)間、執(zhí)行耗時(shí)、執(zhí)行日志等。每次任務(wù)執(zhí)行完成后,會(huì)在該表中插入一條記錄。

  • xxl_job_log_report表:該表用于存儲(chǔ)任務(wù)的執(zhí)行報(bào)表,包括任務(wù)的執(zhí)行統(tǒng)計(jì)信息,如成功次數(shù)、失敗次數(shù)、觸發(fā)次數(shù)、調(diào)度時(shí)間等。每次任務(wù)執(zhí)行完成后,會(huì)在該表中插入或更新一條記錄。

  • xxl_job_registry表:該表用于存儲(chǔ)任務(wù)執(zhí)行器的注冊(cè)信息,包括執(zhí)行器的地址、端口、心跳時(shí)間等。每個(gè)執(zhí)行器在該表中都有一條記錄,用于任務(wù)的分配和調(diào)度。

  • xxl_job_lock表:該表用于存儲(chǔ)任務(wù)的分布式鎖信息,用于控制任務(wù)在分布式環(huán)境下的并發(fā)執(zhí)行。每個(gè)任務(wù)在該表中都有一條記錄,用于任務(wù)的加鎖和解鎖。

第三步,連接本地的mysql庫(kù)

配置文件的地址是

/xxl-job/xxl-job-admin/src/main/resources/application.properties

這里面我們直接填寫(xiě)本地的數(shù)據(jù)庫(kù)信息。

第四步,啟動(dòng)xxl-job-admin項(xiàng)目

配置好本地的mysql環(huán)境之后,選擇好項(xiàng)目的jdk

之后我們啟動(dòng)啟動(dòng)類

com.xxl.job.admin.XxlJobAdminApplication

控制臺(tái)打印如下信息則說(shuō)明我們啟動(dòng)完成了

訪問(wèn)xxl-job的控制臺(tái)

http://localhost:8080/xxl-job-admin/toLogin 默認(rèn)的用戶密碼是 admin、123456

第五步,啟動(dòng)執(zhí)行器項(xiàng)目

執(zhí)行器(Executor)是指用于執(zhí)行具體任務(wù)的運(yùn)行時(shí)組件。執(zhí)行器負(fù)責(zé)接收任務(wù)調(diào)度中心分配的任務(wù),并按照任務(wù)的配置進(jìn)行執(zhí)行??梢岳斫鉃閤xl-job-admin項(xiàng)目是一個(gè)注冊(cè)中心,而執(zhí)行器項(xiàng)目就是我們的執(zhí)行者,注冊(cè)中心負(fù)責(zé)管理統(tǒng)籌我們具體的任務(wù),而任務(wù)里面具體做了什么事情就是執(zhí)行器項(xiàng)目里面的業(yè)務(wù)了。

直接使用官方的項(xiàng)目即可

官方的倉(cāng)庫(kù)里面也給了我們一個(gè)執(zhí)行器示例項(xiàng)目,叫做xxl-job-executor-sample-springboot

我們也執(zhí)行啟動(dòng)類即可,如下則啟動(dòng)成功

這個(gè)時(shí)候我們?nèi)ピL問(wèn)我們的控制臺(tái)頁(yè)面即可看到我們的執(zhí)行器項(xiàng)目已經(jīng)成功注冊(cè)進(jìn)來(lái)了

更改注冊(cè)中心(xxl-job-admin項(xiàng)目)地址

我們可以看到這里的配置文件可以直接更改注冊(cè)中心的地址

xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

第六步,執(zhí)行定時(shí)任務(wù)

通過(guò)在任務(wù)執(zhí)行類的方法上添加@XxlJob注解,可以將該方法標(biāo)記為一個(gè)定時(shí)任務(wù)。注解中可以設(shè)置任務(wù)的名稱、分組、CRON表達(dá)式等屬性,以及任務(wù)的參數(shù)和路由策略等。

使用項(xiàng)目中的示例任務(wù)

com.xxl.job.executor.service.jobhandler.SampleXxlJob#demoJobHandler

使用控制臺(tái)調(diào)用任務(wù)

之后可以看到代碼里面對(duì)應(yīng)的信息被打印到日志中(示例任務(wù)是這樣的,實(shí)際根據(jù)你的業(yè)務(wù)寫(xiě)代碼就可以了)

第七步,自定義xxl-job服務(wù)

xxl-job-admin(注冊(cè)中心)

在實(shí)際的工作過(guò)程中,必不能直接這樣使用,就拿我們公司來(lái)說(shuō),我們使用的是微服務(wù)的架構(gòu),我們會(huì)把xxl-job-admin項(xiàng)目封裝成一個(gè)微服務(wù)(當(dāng)然不注冊(cè)到nacos中)。這里直接用Maven打包成一個(gè)jar包

會(huì)在和項(xiàng)目同級(jí)別的目錄下出現(xiàn)一個(gè)jar包

即可通過(guò)java命令運(yùn)行

xxl-job-executor(執(zhí)行器)

之后我們使用具體服務(wù)的微服務(wù)里面的節(jié)點(diǎn)(業(yè)務(wù)包,例如用戶中心)指定xxl-job-admin項(xiàng)目的地址里面去使用。如果使用自定義的執(zhí)行器要保證引入以下jar包

		 <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>${project.parent.version}</version>
        </dependency>

就如示例項(xiàng)目中一樣

直接運(yùn)行執(zhí)行器即可注入到xxl-job-admin(注冊(cè)中心)里面去,最后我們?cè)诳刂婆_(tái)統(tǒng)一管理我們的任務(wù)即可:

通過(guò)本文的介紹,我們了解了如何在Spring Boot項(xiàng)目中集成XXL-Job,實(shí)現(xiàn)超牛的定時(shí)任務(wù)。XXL-Job提供了強(qiáng)大的任務(wù)調(diào)度和管理功能,使得定時(shí)任務(wù)的開(kāi)發(fā)和管理變得更加簡(jiǎn)單和高效。

集成XXL-Job,我們可以通過(guò)配置或注解的方式定義定時(shí)任務(wù),并靈活地設(shè)置任務(wù)的調(diào)度規(guī)則和執(zhí)行方式。無(wú)論是按照時(shí)間間隔還是時(shí)間點(diǎn)執(zhí)行任務(wù),XXL-Job都能滿足我們的需求。同時(shí),XXL-Job還提供了任務(wù)的監(jiān)控和管理功能,讓我們可以實(shí)時(shí)了解任務(wù)的執(zhí)行情況和結(jié)果。

通過(guò)使用XXL-Job,我們可以輕松實(shí)現(xiàn)定時(shí)任務(wù)的自動(dòng)化執(zhí)行,提高系統(tǒng)的穩(wěn)定性和可靠性。無(wú)論是在企業(yè)級(jí)應(yīng)用中還是個(gè)人項(xiàng)目中,XXL-Job都能為我們帶來(lái)便利和效益。

XXL-Job作為一款國(guó)產(chǎn)的優(yōu)秀開(kāi)源軟件,提供了強(qiáng)大的任務(wù)調(diào)度和管理功能,完全能夠媲美甚至超越國(guó)外同類產(chǎn)品。作為國(guó)產(chǎn)軟件的使用者和推廣者,我們應(yīng)該積極擁抱國(guó)產(chǎn)軟件,為其發(fā)展壯大貢獻(xiàn)自己的力量。讓我們攜手努力,為國(guó)內(nèi)軟件行業(yè)的發(fā)展做出更大的貢獻(xiàn)!

以上就是SpringBoot集成xxl-job實(shí)現(xiàn)超牛的定時(shí)任務(wù)的步驟詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot xxl-job定時(shí)任務(wù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java實(shí)現(xiàn)快速冪算法詳解

    Java實(shí)現(xiàn)快速冪算法詳解

    快速冪是用來(lái)解決求冪運(yùn)算的高效方式。此算法偶爾會(huì)出現(xiàn)在筆試以及面試中,特意花時(shí)間研究了下這題,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • java 如何實(shí)現(xiàn)多語(yǔ)言配置i18n

    java 如何實(shí)現(xiàn)多語(yǔ)言配置i18n

    這篇文章主要介紹了java 如何實(shí)現(xiàn)多語(yǔ)言配置i18n的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringCloudGateway 網(wǎng)關(guān)登錄校驗(yàn)實(shí)現(xiàn)思路

    SpringCloudGateway 網(wǎng)關(guān)登錄校驗(yàn)實(shí)現(xiàn)思路

    文章介紹了在微服務(wù)架構(gòu)中使用Spring Cloud Gateway進(jìn)行登錄校驗(yàn)的方法,通過(guò)在網(wǎng)關(guān)層面進(jìn)行登錄校驗(yàn),并將用戶信息通過(guò)請(qǐng)求頭傳遞給下游微服務(wù),解決了每個(gè)微服務(wù)都需要獨(dú)立進(jìn)行登錄校驗(yàn)的問(wèn)題,此外,還討論了如何在微服務(wù)之間傳遞用戶信息
    2024-11-11
  • java導(dǎo)出json格式文件的示例代碼

    java導(dǎo)出json格式文件的示例代碼

    本篇文章主要介紹了java導(dǎo)出json格式文件的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Java服務(wù)端架構(gòu)之微服務(wù)與單體服務(wù)的權(quán)衡方式

    Java服務(wù)端架構(gòu)之微服務(wù)與單體服務(wù)的權(quán)衡方式

    本文比較了Java微服務(wù)與單體服務(wù)的優(yōu)缺點(diǎn),并提供了相應(yīng)的示例代碼,微服務(wù)架構(gòu)具有可擴(kuò)展性、技術(shù)多樣性等優(yōu)勢(shì),但復(fù)雜性和網(wǎng)絡(luò)延遲是缺點(diǎn),單體服務(wù)架構(gòu)簡(jiǎn)單易部署,但擴(kuò)展性差,選擇哪種架構(gòu)應(yīng)根據(jù)項(xiàng)目需求和團(tuán)隊(duì)能力
    2025-03-03
  • 在java程序中使用protobuf

    在java程序中使用protobuf

    這篇文章主要介紹了protobuf的基本使用和同java結(jié)合的具體案例,感性興趣的小伙伴可以一起來(lái)閱讀下文
    2021-08-08
  • intellij idea中spring boot properties文件不能自動(dòng)提示問(wèn)題解決

    intellij idea中spring boot properties文件不能自動(dòng)提示問(wèn)題解決

    這篇文章主要介紹了intellij idea中spring boot properties文件不能自動(dòng)提示問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • java中計(jì)算集合的交差并集示例代碼

    java中計(jì)算集合的交差并集示例代碼

    今天突然想Java如何計(jì)算集合的交差并集,主要是看Python語(yǔ)言的時(shí)候想起來(lái)的。下面這篇文章主要給大家介紹了關(guān)于java中計(jì)算集合的交差并集的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-08-08
  • SpringBoot?基于?MongoTemplate?的工具類過(guò)程詳解

    SpringBoot?基于?MongoTemplate?的工具類過(guò)程詳解

    MongoDB是一個(gè)高性能,開(kāi)源,無(wú)模式的文檔型數(shù)據(jù)庫(kù),是當(dāng)前NoSql數(shù)據(jù)庫(kù)中比較熱門(mén)的一種,這篇文章主要介紹了SpringBoot基于MongoTemplate的工具類,需要的朋友可以參考下
    2023-09-09
  • Spring?cloud如何實(shí)現(xiàn)FeignClient指定Zone調(diào)用

    Spring?cloud如何實(shí)現(xiàn)FeignClient指定Zone調(diào)用

    這篇文章主要介紹了Spring?cloud如何實(shí)現(xiàn)FeignClient指定Zone調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評(píng)論