日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Springboot集成分布式任務調度系統XXl-Job(調度器和執行器)

來源: 責編: 時間:2023-11-07 17:17:16 320觀看
導讀一、部署xxl-job服務端下載xxl-job源碼下載地址:https://gitee.com/xuxueli0323/xxl-job二、導入項目、創建xxl_job數據庫、修改配置文件為自己的數據庫三、啟動項目、訪問首頁訪問地址:http://localhost:8080/xxl-job-

E2o28資訊網——每日最新資訊28at.com

一、部署xxl-job服務端

下載xxl-job源碼

下載地址:https://gitee.com/xuxueli0323/xxl-jobE2o28資訊網——每日最新資訊28at.com

二、導入項目、創建xxl_job數據庫、修改配置文件為自己的數據庫

E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

三、啟動項目、訪問首頁

訪問地址:http://localhost:8080/xxl-job-admin/ 賬號:admin 密碼:123456.E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

執行器管理

我們部署的是調度器管理平臺,執行器就是我們實際開發的應用系統:比如:會員系統、訂單系統、結算系統等等;執行器管理可以對每一個注冊上來的執行器進行管理(編輯、刪除執行器等)。E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

任務管理

我們應用系統都會有自己特定的job任務:比如:會員系統定時拉取一些會員推送模板消息、短信消息;結算系統定時生成結算任務、報表等。任務管理可根據具體的執行器、job任務名稱(JobHandler)、任務描述等進行篩選;可新增任務、啟動任務、執行任務、查詢調度日志,功能比較豐富。E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

用戶管理

用戶管理可根據角色(普通用戶、管理員)進行管理:新增用戶、刪除用戶。E2o28資訊網——每日最新資訊28at.com

調度日志

在調度日志模塊可查詢我們執行任務時的具體情況,可根據具體的執行器、任務名稱、執行狀態進行篩選(成功、失敗、進行中),對于進行中的任務可手動終止;調度備注列可查看調度詳情,比如:我們的任務被調度到哪一臺機器、調度的結果碼、結果信息等等。E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

運行報表

運行報表是對調度平臺中執行器數、任務數、調度次數、調度明細(成功、失敗)數據的匯總統計。E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

四、新建結算系統執行器【僅僅是個demo案例】

看到此處,想必大家心中對xxl-job已經有了一些初步的了解和感受,摩拳擦掌,趁熱打鐵,下面我們新建一個結算系統應用,注冊到調度平臺,并新建一個月結任務,測試下吧。E2o28資訊網——每日最新資訊28at.com

引入xxl-job調度器依賴

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

application.properties配置文件新增xxl-job配置

#xxljob config#調度器地址xxl.job.admin.addresses = http://127.0.0.1:8080/xxl-job-admin#鑒權用暫無xxl.job.accessToken =#執行器名稱(就是我們的業務系統) xxl.job.executor.appname = settle-system#執行器地址和ip,demo案例無需填寫xxl.job.executor.address =xxl.job.executor.ip =#執行器端口:默認值:9999xxl.job.executor.port = 9999#日志路徑xxl.job.executor.logpath = D://tmp//log#日志清理時間xxl.job.executor.logretentiondays = 30

執行器配置類(XxlJobConfig.java):

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.annotation.Bean;import org.springframework.beans.factory.annotation.Value;import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;import org.springframework.context.annotation.Configuration;@Configurationpublic class XxlJobConfig {    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);    @Value("${xxl.job.admin.addresses}")    private String adminAddresses;    @Value("${xxl.job.accessToken}")    private String accessToken;    @Value("${xxl.job.executor.appname}")    private String appname;    @Value("${xxl.job.executor.address}")    private String address;    @Value("${xxl.job.executor.ip}")    private String ip;    @Value("${xxl.job.executor.port}")    private int port;    @Value("${xxl.job.executor.logpath}")    private String logPath;    @Value("${xxl.job.executor.logretentiondays}")    private int logRetentionDays;    @Bean    public XxlJobSpringExecutor xxlJobExecutor() {        logger.info(">>>>>>>>>>> xxl-job config init.");        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);        xxlJobSpringExecutor.setAppname(appname);        xxlJobSpringExecutor.setAddress(address);        xxlJobSpringExecutor.setIp(ip);        xxlJobSpringExecutor.setPort(port);        xxlJobSpringExecutor.setAccessToken(accessToken);        xxlJobSpringExecutor.setLogPath(logPath);        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);        return xxlJobSpringExecutor;    }

編寫結算系統-月結job任務(MonthlySettlementJobHandler.java)

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import com.xxl.job.core.handler.annotation.XxlJob;@Componentpublic class MonthlySettlementJobHandler {    private static Logger logger = LoggerFactory.getLogger(MonthlySettlementJobHandler.class);		// 使用@XxlJob注解,將monthlySettlementJobHandler任務注冊到調度平臺    @XxlJob("monthlySettlementJobHandler")    public void monthlySettlementJobHandler(String param) throws InterruptedException {        try {            logger.info("結算系統-月結任務執行 參數: {}", param);        } catch (Exception e) {            logger.error("結算系統-月結任務執行 異常 參數: {} 異常信息: ", param, e);        }    }}

結算系統執行器代碼編寫完畢,啟動成功后,就需要去調度器管理平臺新建我們的執行器、以及我們的job任務了。E2o28資訊網——每日最新資訊28at.com

在調度平臺新建結算系統執行器

  • AppName:對應我們的配置:xxl.job.executor.appname = settle-system。
  • 名稱:根據實際情況填寫(結算系統)。
  • 注冊方式:選擇自動注冊就可以了,結算系統在啟動的時候,會自動向調度平臺注冊。
  • 機器地址:注冊方式選擇手動錄入時才需要填寫,此處我們無需填寫。

新建完畢之后,在列表頁面具體的執行器了,點擊OnLine 機器地址,可查看執行器的ip和端口。E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

在調度平臺新建結算系統調度任務

  • 執行器:選擇結算系統
  • 任務描述:結算系統-月結任務
  • 負責人:根據實際情況填寫
  • 報警郵件:根據實際情況填寫
  • 調度類型:選擇CRON
  • Cron:填寫Cron表達式:0 0 3 * * ? (每日凌晨3.00執行一次)
  • 運行模式:Bean
  • JobHandler:就是我們編寫的月結job任務代碼中@XxlJob注解指定的名稱:
    monthlySettlementJobHandler
  • 任務參數:根據實際情況填寫,此demo案例沒有使用參數
  • 路由策略:策略較多,此處我們選擇第一個
  • 子任務ID:暫未
  • 調度過期策略:忽略
  • 阻塞處理策略:根據實際情況填寫,此處我們選擇單機串行
  • 任務超時時間:單位:秒,根據實際情況填寫,此處是3秒
  • 失敗重試次數:根據實際情況填寫,此處我們選擇不重試:0

E2o28資訊網——每日最新資訊28at.com

執行結算系統-月結任務

點擊:操作--》執行一次--》根據實際情況填寫job參數--》機器地址無需填寫。E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

執行后,去結算系統查看日志,會有相應業務日志輸出。E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

再回到調度平臺,點擊:操作--》查詢日志--》可看到調度時間、調度結果等等。E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

E2o28資訊網——每日最新資訊28at.com

四、總結

從調度平臺部署、到業務應用系統(結算系統)對接調度平臺、編寫月結job任務,總體流程大家應該都比較清晰了,是不是覺得還挺簡單的,會不會又有些疑問,對接步驟這么簡潔,其背后的原理究竟是什么?E2o28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-17561-0.htmlSpringboot集成分布式任務調度系統XXl-Job(調度器和執行器)

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 輕松掌握Python正則表達式:高效處理文本數據的秘訣!

下一篇: 在Javascript中為什么 0.1+0.2 不等于0.3 ? 源代碼詳細解析

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 托克托县| 舒兰市| 灌云县| 康乐县| 马龙县| 磐安县| 娱乐| 石棉县| 象山县| 冀州市| 垦利县| 平定县| 五峰| 永川市| 龙江县| 乌审旗| 怀安县| 阳原县| 成都市| 阳曲县| 美姑县| 格尔木市| 灵石县| 大方县| 舞阳县| 东乡族自治县| 永昌县| 龙川县| 镇平县| 九龙坡区| 贞丰县| 固镇县| 沂水县| 祁连县| 紫金县| 句容市| 城口县| 庆安县| 光泽县| 沙湾县| 惠东县|