最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot部署xxl-job方法詳細(xì)講解

 更新時(shí)間:2023年01月09日 10:19:28   作者:我有一只肥螳螂  
XXL-JOB是一個(gè)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡單、輕量級(jí)、易擴(kuò)展,這篇文章主要介紹了springboot整合xxl-job流程,需要的朋友可以參考下

部署xxl-job

K8S 部署 xxl-job 參考文檔:http://m.fzitv.net/article/252770.htm

SpringBoot配置

maven 配置

pom 文件添加依賴

<!--xxl-job依賴-->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>2.3.0</version>
</dependency>

application.yaml

添加參數(shù)

  • addresses:調(diào)度中心部署跟地址,如調(diào)度中心集群部署存在多個(gè)地址則用逗號(hào)分隔,執(zhí)行器將會(huì)使用該地址進(jìn)行"執(zhí)行器心跳注冊(cè)"和"任務(wù)結(jié)果回調(diào)"
  • appname:執(zhí)行器的名稱,后面配置 xxl-job-admin 要用
  • ip:ip地址
  • port:對(duì)外暴露的端口號(hào),注意,如果配置多個(gè)執(zhí)行器時(shí),防止端口沖突
  • logpath: 執(zhí)行器運(yùn)行日志文件存儲(chǔ)的磁盤位置,需要對(duì)該路徑擁有讀寫權(quán)限
  • logretentiondays: 執(zhí)行器Log文件定期清理功能,指定日志保存天數(shù),日志文件過期自動(dòng)刪除。限制至少保持3天,否則功能不生效;
  • accessToken:執(zhí)行器通訊token[選填]:非空時(shí)啟動(dòng)

xxl:
  job:
    admin:
      addresses: http://192.168.140.1:8080/xxl-job-admin
    executor:
      appname: demo-feng-executor
      ip:
      port: 9997
      logpath: /home/applogs/xxl-job/jobhandler
      logretentiondays: -1
    accessToken:

配置 XxlJobConfig

  • 引入 application.yaml 配置的參數(shù)
  • 注冊(cè) XxlJobSpringExecutor
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;
@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
    @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;
    @Bean
    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;
    }
}

XxlJobSpringExecutor

這里聊一下 XxlJobSpringExecutor,不想多了解的可以跳過

afterSingletonsInstantiated 函數(shù)

  • this.initJobHandlerMethodRepository(applicationContext):初始化 JobHandler,就是找到帶有注解 @XxlJob 的 Job ,進(jìn)行注冊(cè)
  • GlueFactory.refreshInstance(1):刷新GlueFactory, 這里type 為 0/1,1 就是說明使用的是Spring 框架
  • super.start():調(diào)用父類start() 方法,核心邏輯
public void afterSingletonsInstantiated() {
    this.initJobHandlerMethodRepository(applicationContext);
    GlueFactory.refreshInstance(1);
    try {
        super.start();
    } catch (Exception var2) {
        throw new RuntimeException(var2);
    }
}

start函數(shù)

  • initLogPath:初始化log路徑,沒有給定,默認(rèn)是 /data/applogs/xxl-job/jobhandler
  • initAdminBizList:初始化 invoker, admin-client,這里就是給定的 admin server 端地址,一個(gè)或者多個(gè),封裝成 AdminBizClient 對(duì)象,放在adminBizList list里面,以便后面的回調(diào)、注冊(cè)、移除等操作
  • JobLogFileCleanThread.getInstance().start:初始化 日志 清理線程,定時(shí)清理
  • TriggerCallbackThread.getInstance().start():初始化回調(diào)線程
  • initEmbedServer:初始化 executor-server
public void start() throws Exception {
     XxlJobFileAppender.initLogPath(this.logPath);
     this.initAdminBizList(this.adminAddresses, this.accessToken);
     JobLogFileCleanThread.getInstance().start((long)this.logRetentionDays);
     TriggerCallbackThread.getInstance().start();
     this.initEmbedServer(this.address, this.ip, this.port, this.appname, this.accessToken);
 }

新建執(zhí)行任務(wù)

  • MyTask 為任務(wù)名
  • 注解 @XxlJob 會(huì)被 spring 找到,起名需要注意,后面配置 xxl-job-admin 要用到
  • 函數(shù)里可以自定義需要執(zhí)行的內(nèi)容
@Slf4j
@Component
public class MyTask {
    @XxlJob("fengDemoTask")
    private void task() {
        log.info("成功調(diào)用demo任務(wù)");
    }
}

配置xxl-job-admin

執(zhí)行器管理

點(diǎn)擊 “新增”

  • appname:對(duì)應(yīng) application.yaml 配置的 xxl.job.executor.appname
  • 名稱:自定義中文名,在任務(wù)管理會(huì)顯示
  • 注冊(cè)方式:建議使用手動(dòng)
  • 機(jī)器地址:服務(wù)運(yùn)行的 ip + 端口,端口為 application.yaml 配置的 xxl.job.executor.port

任務(wù)管理

選擇剛剛執(zhí)行器,點(diǎn)擊 “新增”

  • 任務(wù)描述:自定義
  • 負(fù)責(zé)人:自定義
  • 調(diào)度類型:建議選擇 CRON
  • Cron:表達(dá)式參考文章,傳送門
  • 運(yùn)行模式:BEAN
  • JobHandler:注解 @XxlJob 的名稱
  • 路由策略:默認(rèn)是第一個(gè),如果配置了多個(gè)需要同時(shí)調(diào)度,可以選擇分片廣播

編輯任務(wù)狀態(tài)

到此這篇關(guān)于SpringBoot部署xxl-job方法詳細(xì)講解的文章就介紹到這了,更多相關(guān)SpringBoot部署xxl-job內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java web實(shí)現(xiàn)賬號(hào)單一登錄,防止同一賬號(hào)重復(fù)登錄(踢人效果)

    Java web實(shí)現(xiàn)賬號(hào)單一登錄,防止同一賬號(hào)重復(fù)登錄(踢人效果)

    這篇文章主要介紹了Java web實(shí)現(xiàn)賬號(hào)單一登錄,防止同一賬號(hào)重復(fù)登錄,有點(diǎn)類似于qq登錄踢人效果,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringBoot使用?Sleuth?進(jìn)行分布式跟蹤的過程分析

    SpringBoot使用?Sleuth?進(jìn)行分布式跟蹤的過程分析

    Spring Boot Sleuth是一個(gè)分布式跟蹤解決方案,它可以幫助您在分布式系統(tǒng)中跟蹤請(qǐng)求并分析性能問題,Spring Boot Sleuth是Spring Cloud的一部分,它提供了分布式跟蹤的功能,本文將介紹如何在Spring Boot應(yīng)用程序中使用Sleuth進(jìn)行分布式跟蹤,感興趣的朋友一起看看吧
    2023-10-10
  • Spring Boot定時(shí)器創(chuàng)建及使用解析

    Spring Boot定時(shí)器創(chuàng)建及使用解析

    這篇文章主要介紹了Spring Boot定時(shí)器創(chuàng)建及使用解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot如何解析應(yīng)用參數(shù)args

    SpringBoot如何解析應(yīng)用參數(shù)args

    文章主要介紹了SpringBoot啟動(dòng)過程中如何解析`main`函數(shù)中的參數(shù)`args`,包括如何解析命令行參數(shù)、訪問選項(xiàng)參數(shù)和非選項(xiàng)參數(shù),接著,介紹了`ApplicationArguments`接口及其方法,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • java設(shè)計(jì)模式之中介者模式

    java設(shè)計(jì)模式之中介者模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之中介者模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 解決報(bào)錯(cuò):java.lang.IllegalStateException: Failed to execute CommandLineRunner問題

    解決報(bào)錯(cuò):java.lang.IllegalStateException: Failed to&nb

    在項(xiàng)目開發(fā)中,可能會(huì)遇到Elasticsearch啟動(dòng)報(bào)錯(cuò)的問題,原因可能包括版本不一致、端口配置錯(cuò)誤、配置文件不匹配及服務(wù)未啟動(dòng)等,解決方法包括檢查進(jìn)程、重啟服務(wù)等,這些經(jīng)驗(yàn)可以幫助開發(fā)者快速定位問題并解決,保證項(xiàng)目順利運(yùn)行
    2024-10-10
  • Spring中的@Resource源碼解析

    Spring中的@Resource源碼解析

    這篇文章主要介紹了Spring中的@Resource源碼解析,這個(gè)注解加載的時(shí)候經(jīng)過的類是CommonAnnotationBeanPostProcessor和Autowired一樣,也是postProcessProperties()方法,需要的朋友可以參考下
    2023-09-09
  • Javas使用Redlock實(shí)現(xiàn)分布式鎖過程解析

    Javas使用Redlock實(shí)現(xiàn)分布式鎖過程解析

    這篇文章主要介紹了Javas使用Redlock實(shí)現(xiàn)分布式鎖過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Java性能調(diào)優(yōu)及排查方式

    Java性能調(diào)優(yōu)及排查方式

    這篇文章主要介紹了Java性能調(diào)優(yōu)及排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • SpringBoot集成RbbitMQ隊(duì)列踩坑記錄

    SpringBoot集成RbbitMQ隊(duì)列踩坑記錄

    這篇文章主要介紹了SpringBoot集成RbbitMQ隊(duì)列踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評(píng)論

兴文县| 加查县| 南溪县| 石景山区| 思茅市| 分宜县| 枝江市| 新民市| 焉耆| 惠来县| 简阳市| 宁陵县| 安新县| 绿春县| 泰和县| 甘孜| 岫岩| 松潘县| 深水埗区| 承德县| 康马县| 乌拉特前旗| 乳山市| 抚顺县| 潢川县| 三河市| 龙井市| 西乌| 江川县| 志丹县| 景泰县| 肇东市| 高州市| 偏关县| 措勤县| 米林县| 福州市| 都昌县| 阿坝| 尼木县| 蓬莱市|