成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Springboot集成分布式任務調(diào)度系統(tǒng)XXl-Job(調(diào)度器和執(zhí)行器)

開發(fā) 架構(gòu)
我們部署的是調(diào)度器管理平臺,執(zhí)行器就是我們實際開發(fā)的應用系統(tǒng):比如:會員系統(tǒng)、訂單系統(tǒng)、結(jié)算系統(tǒng)等等;執(zhí)行器管理可以對每一個注冊上來的執(zhí)行器進行管理(編輯、刪除執(zhí)行器等)。

一、部署xxl-job服務端

下載xxl-job源碼

下載地址:https://gitee.com/xuxueli0323/xxl-job

二、導入項目、創(chuàng)建xxl_job數(shù)據(jù)庫、修改配置文件為自己的數(shù)據(jù)庫

三、啟動項目、訪問首頁

訪問地址:http://localhost:8080/xxl-job-admin/ 賬號:admin 密碼:123456.

執(zhí)行器管理

我們部署的是調(diào)度器管理平臺,執(zhí)行器就是我們實際開發(fā)的應用系統(tǒng):比如:會員系統(tǒng)、訂單系統(tǒng)、結(jié)算系統(tǒng)等等;執(zhí)行器管理可以對每一個注冊上來的執(zhí)行器進行管理(編輯、刪除執(zhí)行器等)。

任務管理

我們應用系統(tǒng)都會有自己特定的job任務:比如:會員系統(tǒng)定時拉取一些會員推送模板消息、短信消息;結(jié)算系統(tǒng)定時生成結(jié)算任務、報表等。任務管理可根據(jù)具體的執(zhí)行器、job任務名稱(JobHandler)、任務描述等進行篩選;可新增任務、啟動任務、執(zhí)行任務、查詢調(diào)度日志,功能比較豐富。

用戶管理

用戶管理可根據(jù)角色(普通用戶、管理員)進行管理:新增用戶、刪除用戶。

調(diào)度日志

在調(diào)度日志模塊可查詢我們執(zhí)行任務時的具體情況,可根據(jù)具體的執(zhí)行器、任務名稱、執(zhí)行狀態(tài)進行篩選(成功、失敗、進行中),對于進行中的任務可手動終止;調(diào)度備注列可查看調(diào)度詳情,比如:我們的任務被調(diào)度到哪一臺機器、調(diào)度的結(jié)果碼、結(jié)果信息等等。

運行報表

運行報表是對調(diào)度平臺中執(zhí)行器數(shù)、任務數(shù)、調(diào)度次數(shù)、調(diào)度明細(成功、失敗)數(shù)據(jù)的匯總統(tǒng)計。

四、新建結(jié)算系統(tǒng)執(zhí)行器【僅僅是個demo案例】

看到此處,想必大家心中對xxl-job已經(jīng)有了一些初步的了解和感受,摩拳擦掌,趁熱打鐵,下面我們新建一個結(jié)算系統(tǒng)應用,注冊到調(diào)度平臺,并新建一個月結(jié)任務,測試下吧。

引入xxl-job調(diào)度器依賴

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

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

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

執(zhí)行器配置類(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;

@Configuration
public 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;
    }

編寫結(jié)算系統(tǒng)-月結(jié)job任務(MonthlySettlementJobHandler.java)

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.xxl.job.core.handler.annotation.XxlJob;

@Component
public class MonthlySettlementJobHandler {

    private static Logger logger = LoggerFactory.getLogger(MonthlySettlementJobHandler.class);

		// 使用@XxlJob注解,將monthlySettlementJobHandler任務注冊到調(diào)度平臺
    @XxlJob("monthlySettlementJobHandler")
    public void monthlySettlementJobHandler(String param) throws InterruptedException {
        try {
            logger.info("結(jié)算系統(tǒng)-月結(jié)任務執(zhí)行 參數(shù): {}", param);
        } catch (Exception e) {
            logger.error("結(jié)算系統(tǒng)-月結(jié)任務執(zhí)行 異常 參數(shù): {} 異常信息: ", param, e);
        }
    }
}

結(jié)算系統(tǒng)執(zhí)行器代碼編寫完畢,啟動成功后,就需要去調(diào)度器管理平臺新建我們的執(zhí)行器、以及我們的job任務了。

在調(diào)度平臺新建結(jié)算系統(tǒng)執(zhí)行器

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

新建完畢之后,在列表頁面具體的執(zhí)行器了,點擊OnLine 機器地址,可查看執(zhí)行器的ip和端口。

在調(diào)度平臺新建結(jié)算系統(tǒng)調(diào)度任務

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

執(zhí)行結(jié)算系統(tǒng)-月結(jié)任務

點擊:操作--》執(zhí)行一次--》根據(jù)實際情況填寫job參數(shù)--》機器地址無需填寫。

執(zhí)行后,去結(jié)算系統(tǒng)查看日志,會有相應業(yè)務日志輸出。

再回到調(diào)度平臺,點擊:操作--》查詢?nèi)罩?-》可看到調(diào)度時間、調(diào)度結(jié)果等等。

四、總結(jié)

從調(diào)度平臺部署、到業(yè)務應用系統(tǒng)(結(jié)算系統(tǒng))對接調(diào)度平臺、編寫月結(jié)job任務,總體流程大家應該都比較清晰了,是不是覺得還挺簡單的,會不會又有些疑問,對接步驟這么簡潔,其背后的原理究竟是什么?

責任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2024-11-06 18:01:15

分布式任務調(diào)度組件

2022-01-27 08:44:58

調(diào)度系統(tǒng)開源

2023-01-04 09:23:58

2022-12-29 08:32:50

xxl-job緩存Schedule

2022-06-13 07:43:21

分布式Spring

2024-12-04 10:47:26

2025-01-06 08:53:37

2023-11-22 10:07:22

2020-09-29 19:20:05

鴻蒙

2023-06-26 00:14:28

Openjob分布式任務

2023-05-08 16:38:46

任務調(diào)度分布式任務調(diào)度

2021-12-26 00:03:27

響應式編程異步

2020-11-06 12:12:35

HarmonyOS

2025-05-13 03:22:00

2024-09-23 04:00:00

java架構(gòu)分布式系統(tǒng)

2022-06-20 15:32:55

Stage模型分布式開發(fā)

2024-09-09 08:11:12

2019-11-15 10:16:27

分布式任務框架

2021-11-10 16:10:18

鴻蒙HarmonyOS應用

2024-05-23 10:19:57

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美日韩久久久久 | 欧美在线一区二区三区 | 亚洲欧美视频一区 | 国产精品中文字幕在线播放 | 国产高清精品在线 | 成人在线观看免费 | 国产91亚洲精品 | 亚洲精品国产第一综合99久久 | 色秀网站 | 国产一级片免费看 | 黄色国产视频 | 美国a级毛片免费视频 | 国产欧美一区二区三区日本久久久 | 久久精品国产亚洲 | 超碰97免费在线 | 国产精品日韩欧美一区二区三区 | 九九亚洲 | 91色啪| 羞羞视频免费在线观看 | 国产欧美日韩一区二区三区在线观看 | 亚洲一区中文字幕 | 国产精品欧美一区二区三区不卡 | 国产精品美女久久久 | 欧美成人一区二区 | 天天干国产 | 日韩在线视频免费观看 | 一本在线 | 91九色视频 | 成人自拍视频网站 | 欧美日韩大片 | 日韩欧美国产精品 | 365夜爽爽欧美性午夜免费视频 | 中文字幕视频免费 | 免费国产视频 | 成人激情视频网 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 国产精品久久7777777 | 国产亚洲一区二区在线观看 | 精品三级在线观看 | 精品国产一区一区二区三亚瑟 | 精品在线看 |