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

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

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

部署xxl-job

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

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ù)
  • 注冊 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)行注冊
  • 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 端地址,一個或者多個,封裝成 AdminBizClient 對象,放在adminBizList list里面,以便后面的回調(diào)、注冊、移除等操作
  • JobLogFileCleanThread.getInstance().start:初始化 日志 清理線程,定時清理
  • 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 會被 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í)行器管理

點擊 “新增”

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

任務(wù)管理

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

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

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

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

相關(guān)文章

  • Java?JSON處理庫之Gson的用法詳解

    Java?JSON處理庫之Gson的用法詳解

    Gson是Google開發(fā)的一款Java?JSON處理庫,旨在簡化Java開發(fā)人員操作JSON數(shù)據(jù)的過程,本文就來和大家簡單聊聊Gson的原理與具體使用吧
    2023-05-05
  • SpringBoot的HTTPS配置實現(xiàn)

    SpringBoot的HTTPS配置實現(xiàn)

    本文主要介紹了SpringBoot的HTTPS配置實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Swagger-boostrap-ui如何配置用戶名密碼訪問

    Swagger-boostrap-ui如何配置用戶名密碼訪問

    這篇文章主要介紹了Swagger-boostrap-ui如何配置用戶名密碼訪問,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • CommonMark 使用教程:將 Markdown 語法轉(zhuǎn)成 Html

    CommonMark 使用教程:將 Markdown 語法轉(zhuǎn)成 Html

    這篇文章主要介紹了CommonMark 使用教程:將 Markdown 語法轉(zhuǎn)成 Html,這個技巧我們做任何網(wǎng)站都可以用到,而且非常好用。,需要的朋友可以參考下
    2019-06-06
  • Java中的取余與取模運算概念、區(qū)別代碼實踐

    Java中的取余與取模運算概念、區(qū)別代碼實踐

    這篇文章主要介紹了Java中的取余與取模運算概念、區(qū)別代碼實踐,需要的朋友可以參考下
    2007-02-02
  • SpringBoot之RestTemplate在URL中轉(zhuǎn)義字符的問題

    SpringBoot之RestTemplate在URL中轉(zhuǎn)義字符的問題

    這篇文章主要介紹了SpringBoot之RestTemplate在URL中轉(zhuǎn)義字符的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java實現(xiàn)插入排序,希爾排序和歸并排序

    Java實現(xiàn)插入排序,希爾排序和歸并排序

    這篇文章主要為大家詳細(xì)介紹了插入排序,希爾排序和歸并排序的多種語言的實現(xiàn)(JavaScript、Python、Go語言、Java),感興趣的小伙伴可以了解一下
    2022-12-12
  • Java兩大工具庫Commons和Guava使用示例詳解

    Java兩大工具庫Commons和Guava使用示例詳解

    這篇文章主要為大家介紹了Java兩大工具庫Commons和Guava使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 詳解eclipse中Maven工程使用Tomcat7以上插件的方法

    詳解eclipse中Maven工程使用Tomcat7以上插件的方法

    本篇文章主要介紹了詳解eclipse中Maven工程使用Tomcat7以上插件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • JDK13的新特性之AppCDS詳解

    JDK13的新特性之AppCDS詳解

    AppCDS的全稱是Application Class-Data Sharing。主要是用來在不同的JVM中共享Class-Data信息,從而提升應(yīng)用程序的啟動速度。這篇文章主要介紹了JDK13的新特性:AppCDS詳解,需要的朋友可以參考下
    2020-05-05

最新評論