中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

大鵬附近網(wǎng)站建設(shè)seo關(guān)鍵詞優(yōu)化軟件app

大鵬附近網(wǎng)站建設(shè),seo關(guān)鍵詞優(yōu)化軟件app,wordpress 導(dǎo)航網(wǎng)站主題,沈陽(yáng)優(yōu)化網(wǎng)站關(guān)鍵詞前言 在現(xiàn)代應(yīng)用程序中,定時(shí)任務(wù)是不可或缺的一部分。Spring Boot 和 XXL-Job 為你提供了一個(gè)強(qiáng)大的工具組合,以簡(jiǎn)化任務(wù)調(diào)度和管理。 本文將帶領(lǐng)你探索如何將這兩者集成在一起,實(shí)現(xiàn)高效的定時(shí)任務(wù)管理。無(wú)論你是初學(xué)者還是有經(jīng)驗(yàn)的開(kāi)發(fā)者&…

前言

在現(xiàn)代應(yīng)用程序中,定時(shí)任務(wù)是不可或缺的一部分。Spring Boot 和 XXL-Job 為你提供了一個(gè)強(qiáng)大的工具組合,以簡(jiǎn)化任務(wù)調(diào)度和管理。

本文將帶領(lǐng)你探索如何將這兩者集成在一起,實(shí)現(xiàn)高效的定時(shí)任務(wù)管理。無(wú)論你是初學(xué)者還是有經(jīng)驗(yàn)的開(kāi)發(fā)者,本文都將提供你所需要的知識(shí),讓你輕松掌握這一技術(shù)。讓我們開(kāi)始吧!

一、XXL-Job簡(jiǎn)介

什么是XXL-job

官網(wǎng)地址:

https://www.xuxueli.com/xxl-job/

XXL-Job是一個(gè)開(kāi)源的分布式任務(wù)調(diào)度平臺(tái),主要用于解決大規(guī)模分布式系統(tǒng)中的任務(wù)調(diào)度和管理問(wèn)題。下面是XXL-Job的簡(jiǎn)介,重點(diǎn)強(qiáng)調(diào)其分布式任務(wù)調(diào)度的特點(diǎn):

XXL-Job簡(jiǎn)介:

XXL-Job是一個(gè)基于Java開(kāi)發(fā)的分布式任務(wù)調(diào)度平臺(tái),旨在幫助開(kāi)發(fā)者和運(yùn)維人員管理和調(diào)度任務(wù),特別適用于大規(guī)模分布式應(yīng)用。它提供了直觀的Web界面,易于配置和監(jiān)控各種類型的任務(wù)。

XXL-Job的關(guān)鍵特點(diǎn)包括:

  1. 分布式任務(wù)調(diào)度: XXL-Job支持分布式任務(wù)調(diào)度,可以輕松處理任務(wù)分布在不同節(jié)點(diǎn)的情況。這對(duì)于大型微服務(wù)架構(gòu)和集群環(huán)境非常有用。

  2. 彈性擴(kuò)展: XXL-Job支持彈性擴(kuò)展,你可以隨時(shí)增加或減少執(zhí)行器節(jié)點(diǎn),以適應(yīng)不同負(fù)載和任務(wù)需求。這確保了高可用性和性能。

  3. 任務(wù)調(diào)度中心: XXL-Job提供了一個(gè)任務(wù)調(diào)度中心,可以集中管理和監(jiān)控任務(wù)。你可以在Web界面上創(chuàng)建、編輯、刪除任務(wù),查看任務(wù)日志和統(tǒng)計(jì)信息。

  4. 多種任務(wù)類型: 支持多種任務(wù)類型,包括簡(jiǎn)單的定時(shí)任務(wù)、Bean調(diào)用、Shell腳本、HTTP任務(wù)、GLUE任務(wù)(動(dòng)態(tài)語(yǔ)言任務(wù)),滿足各種任務(wù)需求。

  5. 任務(wù)依賴和失敗重試: XXL-Job允許你配置任務(wù)之間的依賴關(guān)系,確保任務(wù)按照指定的順序執(zhí)行。同時(shí),它支持失敗重試機(jī)制,確保任務(wù)在失敗時(shí)能夠重新執(zhí)行。

  6. 報(bào)警和日志: 提供了報(bào)警機(jī)制,可以通過(guò)郵件、短信等方式通知任務(wù)執(zhí)行結(jié)果。任務(wù)執(zhí)行日志也可以在Web界面中查看,便于故障排查和監(jiān)控。

  7. 開(kāi)源和社區(qū)支持: XXL-Job是開(kāi)源項(xiàng)目,擁有活躍的社區(qū)支持和持續(xù)的更新。你可以根據(jù)自己的需求進(jìn)行定制和擴(kuò)展。

XXL-Job的分布式任務(wù)調(diào)度特點(diǎn)使其成為處理大規(guī)模、復(fù)雜任務(wù)調(diào)度需求的強(qiáng)大工具。它可以幫助開(kāi)發(fā)團(tuán)隊(duì)更好地管理任務(wù),提高系統(tǒng)的可靠性和可維護(hù)性,同時(shí)降低了任務(wù)調(diào)度的復(fù)雜性。

對(duì)比別的任務(wù)調(diào)度

XXL-Job在分布式任務(wù)調(diào)度領(lǐng)域有其獨(dú)特之處,下面是它與其他一些任務(wù)調(diào)度解決方案的比較,以突出其優(yōu)勢(shì)和特點(diǎn):

Quartz:

  • Quartz是一個(gè)強(qiáng)大的Java任務(wù)調(diào)度框架,但通常需要額外的配置和管理來(lái)支持分布式環(huán)境。XXL-Job提供了更易于配置和管理的分布式任務(wù)調(diào)度方案。

  • XXL-Job的Web界面和報(bào)警機(jī)制更加現(xiàn)代化,便于任務(wù)管理和監(jiān)控。

Spring的@Scheduled:

  • Spring的@Scheduled注解適用于單節(jié)點(diǎn)應(yīng)用程序,而XXL-Job專門設(shè)計(jì)用于分布式任務(wù)調(diào)度,支持在多個(gè)節(jié)點(diǎn)上執(zhí)行任務(wù)。

  • XXL-Job提供了任務(wù)依賴和失敗重試的機(jī)制,以處理復(fù)雜任務(wù)流程。

Elastic Job:

  • Elastic Job是另一個(gè)分布式任務(wù)調(diào)度框架,但XXL-Job更注重任務(wù)的可視化管理,提供了直觀的Web界面。

  • XXL-Job的報(bào)警機(jī)制更加豐富,能夠及時(shí)通知任務(wù)執(zhí)行結(jié)果。

Akka Scheduler:

  • Akka是一個(gè)并發(fā)編程庫(kù),它提供了定時(shí)任務(wù)功能,但相對(duì)更加復(fù)雜。XXL-Job更適合那些希望通過(guò)Web界面輕松管理任務(wù)的團(tuán)隊(duì)。

  • XXL-Job的彈性擴(kuò)展特性使其適用于大規(guī)模分布式系統(tǒng)。

Cron4J:

  • Cron4J是一個(gè)輕量級(jí)的Java定時(shí)任務(wù)庫(kù),適用于簡(jiǎn)單任務(wù)。XXL-Job提供了更多高級(jí)功能,如任務(wù)依賴、失敗重試和任務(wù)監(jiān)控。

總體而言,XXL-Job在分布式任務(wù)調(diào)度方面的優(yōu)勢(shì)在于其易用性、可視化管理、分布式支持、任務(wù)依賴和報(bào)警機(jī)制。它是一個(gè)強(qiáng)大的工具,特別適合需要大規(guī)模任務(wù)調(diào)度和監(jiān)控的應(yīng)用程序。

然而,具體選擇取決于項(xiàng)目需求,一些輕量級(jí)的解決方案可能在小型應(yīng)用中更加合適。

二、springboot整合XXL-job

配置XXL-Job Admin

拉取XXL-Job代碼

  • 【gitee】

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

  • 【github】

https://github.com/xuxueli/xxl-job/

上面的github和gitee都可以選擇,然后拉取下來(lái)

修改拉取的配置

1.執(zhí)行拉取下來(lái)的sql:/xxl-job/doc/db/tables_xxl_job.sql

2.修改調(diào)度中心配置/xxl-job/xxl-job-admin/src/main/resources/application.properties

###?web,端口,這里我修改了,默認(rèn)是8080
server.port=9998
#?修改連接數(shù)據(jù)庫(kù)配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3361/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456###?xxl-job,?access?token,注意這里的accessToken在執(zhí)行器中也需要配置(一致)
xxl.job.accessToken=eyJhbGciOiJIUzI1NiJ9

3.修改/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/logback.xml,否則可能會(huì)報(bào)錯(cuò)

<!--?這里需要修改的值如下,不然會(huì)找不到日志路徑-->
<property?name="log.path"?value="./logs/xxl-job-admin.log"/>

4.訪問(wèn)http://127.0.0.1:9998/xxl-job-admin,這里端口是你上面配置的,輸入默認(rèn)的賬號(hào)密碼admin/123456

到這里調(diào)度中心就配置好了

配置執(zhí)行器

這里其實(shí)剛剛拉取的項(xiàng)目下就涵蓋了執(zhí)行器,包括無(wú)框架的以及springboot框架的

自己的項(xiàng)目如何整合

maven依賴

<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.4.0</version>
</dependency>

properties文件配置

###?調(diào)度中心部署根地址?[選填]:如調(diào)度中心集群部署存在多個(gè)地址則用逗號(hào)分隔。執(zhí)行器將會(huì)使用該地址進(jìn)行"執(zhí)行器心跳注冊(cè)"和"任務(wù)結(jié)果回調(diào)";為空則關(guān)閉自動(dòng)注冊(cè);這里的ip也是上面調(diào)度中心的
xxl.job.admin.addresses=http://127.0.0.1:9998/xxl-job-admin
###?執(zhí)行器通訊TOKEN?[選填]:非空時(shí)啟用;這里的密碼是上面調(diào)度中心的
xxl.job.accessToken=eyJhbGciOiJIUzI1NiJ9
###?執(zhí)行器AppName?[選填]:執(zhí)行器心跳注冊(cè)分組依據(jù);為空則關(guān)閉自動(dòng)注冊(cè)
xxl.job.executor.appname=xxl-job-executor-xiaobo
###?執(zhí)行器注冊(cè)?[選填]:優(yōu)先使用該配置作為注冊(cè)地址,為空時(shí)使用內(nèi)嵌服務(wù)?”IP:PORT“?作為注冊(cè)地址。從而更靈活的支持容器類型執(zhí)行器動(dòng)態(tài)IP和動(dòng)態(tài)映射端口問(wèn)題。
xxl.job.executor.address=
###?執(zhí)行器IP?[選填]:默認(rèn)為空表示自動(dòng)獲取IP,多網(wǎng)卡時(shí)可手動(dòng)設(shè)置指定IP,該IP不會(huì)綁定Host僅作為通訊實(shí)用;地址信息用于?"執(zhí)行器注冊(cè)"?和?"調(diào)度中心請(qǐng)求并觸發(fā)任務(wù)";
xxl.job.executor.ip=
###?執(zhí)行器端口號(hào)?[選填]:小于等于0則自動(dòng)獲取;默認(rèn)端口為9999,單機(jī)部署多個(gè)執(zhí)行器時(shí),注意要配置不同執(zhí)行器端口;
xxl.job.executor.port=9999
###?執(zhí)行器運(yùn)行日志文件存儲(chǔ)磁盤路徑?[選填]?:需要對(duì)該路徑擁有讀寫權(quán)限;為空則使用默認(rèn)路徑;
xxl.job.executor.logpath=./logs/xxl-job/jobhandler
###?執(zhí)行器日志文件保存天數(shù)?[選填]?:?過(guò)期日志自動(dòng)清理,?限制值大于等于3時(shí)生效;?否則,?如-1,?關(guān)閉自動(dòng)清理功能;
xxl.job.executor.logretentiondays=30

執(zhí)行器組件配置

package?com.todoitbo.baseSpringbootDasmart.config;import?com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import?org.springframework.beans.factory.annotation.Value;
import?lombok.extern.slf4j.Slf4j;
import?org.springframework.context.annotation.Bean;
import?org.springframework.context.annotation.Configuration;/***?@author?pipilin*?@date?2023/10/24*/
@Configuration
@Slf4j
public?class?XxlJobConfig?{@Value("${xxl.job.admin.addresses}")private?String?adminAddresses;@Value("${xxl.job.executor.appname}")private?String?appname;@Value("${xxl.job.executor.ip}")private?String?ip;@Value("${xxl.job.executor.port}")private?int?port;@Value("${xxl.job.accesstoken}")private?String?accessToken;@Value("${xxl.job.executor.logpath}")private?String?logPath;@Value("${xxl.job.executor.logretentiondays}")private?int?logRetentionDays;@Beanpublic?XxlJobSpringExecutor?xxlJobExecutor()?{log.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;}
}

jobhandler配置

package?com.todoitbo.baseSpringbootDasmart.handler;import?com.xxl.job.core.context.XxlJobHelper;
import?com.xxl.job.core.handler.annotation.XxlJob;
import?org.springframework.stereotype.Component;/***?@author?pipilin*?@date?2023/10/24*/
@Component
public?class?JobHandler?{@XxlJob("demoJobHandler")public?void?demoJobHandler()?throws?Exception?{XxlJobHelper.log("XXL-JOB,?Hello?World.");}
}

拉取下來(lái)的代碼中/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java是更詳細(xì)的配置

實(shí)現(xiàn)效果

1.啟動(dòng)項(xiàng)目,出現(xiàn)如下即成功

圖片

2.任務(wù)調(diào)度頁(yè)面中加入執(zhí)行器

3.配置任務(wù)

4.啟動(dòng)任務(wù)

??:這里如果你要執(zhí)行一次的話,機(jī)器地址一定是帶http的,比如http://127.0.0.1:9999

如果是啟動(dòng)的話,先點(diǎn)擊注冊(cè)節(jié)點(diǎn),再啟動(dòng)即可

三、@XxlJob中參數(shù)詳解

以下是這三個(gè)參數(shù)的詳細(xì)說(shuō)明:

  • value:

  • 參數(shù)類型: String

  • 說(shuō)明: 任務(wù)的名字,必須是唯一的。在XXL-Job Admin中配置任務(wù)時(shí),這個(gè)值用于標(biāo)識(shí)任務(wù)。

  • init:

  • 參數(shù)類型: String

  • 說(shuō)明: 任務(wù)初始化時(shí)的方法名。這個(gè)方法會(huì)在任務(wù)第一次執(zhí)行前被調(diào)用,通常用于初始化一些資源。方法必須是無(wú)參數(shù)的。

  • destroy:

  • 參數(shù)類型: String

  • 說(shuō)明: 任務(wù)銷毀時(shí)的方法名。這個(gè)方法會(huì)在任務(wù)最后一次執(zhí)行后被調(diào)用,通常用于釋放資源。方法必須是無(wú)參數(shù)的。

這三個(gè)參數(shù)是@XxlJob注解的基本參數(shù),用于定義任務(wù)的基本屬性。

四、最佳實(shí)踐

使用Spring Boot和XXL-Job進(jìn)行任務(wù)調(diào)度是一種強(qiáng)大的方式,但也有一些常見(jiàn)的錯(cuò)誤和最佳實(shí)踐,以下是一些建議,幫助讀者避免這些錯(cuò)誤并在實(shí)際項(xiàng)目中取得成功:

詳細(xì)記錄任務(wù)日志:記錄任務(wù)的執(zhí)行日志是非常重要的,它可以幫助你追蹤任務(wù)的執(zhí)行情況,及時(shí)發(fā)現(xiàn)問(wèn)題。確保在任務(wù)Handler中添加詳細(xì)的日志信息。

  • 參數(shù)校驗(yàn): 在任務(wù)Handler中對(duì)傳遞的參數(shù)進(jìn)行合法性校驗(yàn),以避免不必要的異常和錯(cuò)誤。

  • 任務(wù)冪等性: 確保任務(wù)的邏輯是冪等的,即多次執(zhí)行不會(huì)產(chǎn)生不同的結(jié)果。這對(duì)于任務(wù)失敗后的重試非常重要。

  • 失敗處理: 配置任務(wù)的失敗處理策略,包括重試次數(shù)、重試間隔等。這可以幫助應(yīng)對(duì)臨時(shí)問(wèn)題,如網(wǎng)絡(luò)故障或資源不足。

  • 任務(wù)依賴: 如果任務(wù)之間存在依賴關(guān)系,確保在XXL-Job Admin中正確配置任務(wù)的依賴關(guān)系,以保證任務(wù)按照正確的順序執(zhí)行。

  • 動(dòng)態(tài)調(diào)度: 利用XXL-Job的動(dòng)態(tài)調(diào)度功能來(lái)應(yīng)對(duì)實(shí)時(shí)需求的變化,如動(dòng)態(tài)調(diào)整任務(wù)觸發(fā)時(shí)間、任務(wù)取消、任務(wù)延遲等。

  • 監(jiān)控與報(bào)警: 集成監(jiān)控和報(bào)警系統(tǒng),可以幫助你實(shí)時(shí)監(jiān)測(cè)任務(wù)的執(zhí)行情況,及時(shí)發(fā)現(xiàn)問(wèn)題并采取措施。XXL-Job提供了與監(jiān)控系統(tǒng)的集成支持。

  • 版本管理: 使用版本控制工具(如Git)來(lái)管理任務(wù)Handler代碼,以便跟蹤任務(wù)邏輯的變化和恢復(fù)歷史版本。

  • 測(cè)試任務(wù)邏輯: 在開(kāi)發(fā)任務(wù)Handler時(shí)進(jìn)行充分的單元測(cè)試,確保任務(wù)邏輯的正確性。XXL-Job提供了一些測(cè)試工具,如JobLogger。

  • 集群部署: 如果需要,部署XXL-Job執(zhí)行器節(jié)點(diǎn)以提高任務(wù)的可用性和負(fù)載均衡。

  • 版本升級(jí): 定期關(guān)注XXL-Job的更新版本,確保使用最新的穩(wěn)定版本,以獲得最新的功能和 bug 修復(fù)。

  • 安全性: 保護(hù)XXL-Job Admin的訪問(wèn)權(quán)限,防止未經(jīng)授權(quán)的訪問(wèn)。不要在任務(wù)邏輯中存儲(chǔ)敏感信息。

  • 文檔和培訓(xùn): 提供適當(dāng)?shù)奈臋n和培訓(xùn),以便項(xiàng)目團(tuán)隊(duì)了解如何使用XXL-Job和任務(wù)調(diào)度最佳實(shí)踐。

遵循這些最佳實(shí)踐可以幫助你更好地使用Spring Boot和XXL-Job,確保任務(wù)調(diào)度系統(tǒng)的可靠性和穩(wěn)定性。這對(duì)于生產(chǎn)環(huán)境中的任務(wù)調(diào)度至關(guān)重要。

http://www.risenshineclean.com/news/3482.html

相關(guān)文章:

  • 做網(wǎng)站首頁(yè)的軟件百度一下網(wǎng)頁(yè)
  • 外文網(wǎng)站建設(shè)完成如何自建網(wǎng)站?
  • 合肥大型網(wǎng)站制作公司百度賬號(hào)官網(wǎng)
  • 網(wǎng)站做輪播圖的意義深圳網(wǎng)頁(yè)設(shè)計(jì)公司
  • 網(wǎng)站開(kāi)發(fā)工程師中級(jí)高級(jí)星沙網(wǎng)站優(yōu)化seo
  • 參與賭博網(wǎng)站建設(shè)可判幾年微信推廣鏈接怎么制作
  • 微信商城網(wǎng)站建設(shè)app推廣策略
  • 北京外包公司 網(wǎng)站開(kāi)發(fā)自助建站系統(tǒng)模板
  • 建設(shè)銀行網(wǎng)站功能介紹百度的seo關(guān)鍵詞優(yōu)化怎么弄
  • 陜西網(wǎng)站建設(shè)公司哪有網(wǎng)絡(luò)推廣都是收費(fèi)
  • 網(wǎng)絡(luò)優(yōu)化崗位詳細(xì)介紹網(wǎng)絡(luò)優(yōu)化工程師騙局
  • 化妝品網(wǎng)站開(kāi)發(fā)的背景微信做單30元一單
  • 網(wǎng)站開(kāi)發(fā)的前后端是哪些搜索引擎營(yíng)銷的常見(jiàn)方式
  • 廣州微信網(wǎng)站建設(shè)哪家好經(jīng)典軟文案例或軟文案例
  • 美工素材網(wǎng)站有哪些百度北京總部電話
  • 長(zhǎng)泰縣建設(shè)局網(wǎng)站電腦培訓(xùn)課程
  • 做網(wǎng)站需要Excel表格嗎國(guó)際新聞 軍事
  • 網(wǎng)站改版的宣傳詞湖南網(wǎng)絡(luò)優(yōu)化服務(wù)
  • wordpress做登陸頁(yè)面模板林哥seo
  • 做高仿表網(wǎng)站免費(fèi)seo公司
  • 做百度推廣會(huì)送網(wǎng)站嗎線上營(yíng)銷渠道主要有哪些
  • 現(xiàn)在花錢做那個(gè)網(wǎng)站好呀北京搜索優(yōu)化排名公司
  • 個(gè)人網(wǎng)站能備案嗎中國(guó)品牌策劃公司排名
  • 網(wǎng)站建設(shè)報(bào)價(jià)單模板下載如何做好網(wǎng)站的推廣工作
  • 可以做軟件的網(wǎng)站有哪些中文域名注冊(cè)管理中心
  • 運(yùn)城網(wǎng)站建設(shè)求職簡(jiǎn)歷市場(chǎng)營(yíng)銷一般在哪上班
  • 中英雙文網(wǎng)站怎么做磁力搜索器下載
  • 合肥做兼職網(wǎng)站開(kāi)魯seo服務(wù)
  • 如何用dw建立網(wǎng)站互聯(lián)網(wǎng)域名交易中心
  • 關(guān)于做甜品的網(wǎng)站站長(zhǎng)工具seo綜合查詢問(wèn)題