<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          XXL-JOB分布式任務調度平臺(真·保姆級教程)

          共 3633字,需瀏覽 8分鐘

           ·

          2022-05-15 15:28

          點擊關注公眾號,Java干貨及時送達??

          文章來源:https://c1n.cn/L01Io


          目錄

          • 前言

          • xxl-job-admin 搭建

          • 整合 SpringBoot 項目

          前言


          XXL-JOB 是一個輕量級分布式任務調度平臺,其核心設計目標是開發(fā)迅速、學習簡單、輕量級、易擴展。現已開放源代碼并接入多家公司線上產品線,開箱即用。


          可以前往 Gitee 地址進行下載使用:
          https://gitee.com/xuxueli0323/xxl-job.git


          xxl-job-admin 搭建


          | 拉取代碼

          代碼結構如下:
          運行 SQL 文件至本地數據庫:
          修改 xxl-job-admin 模塊的 yml 文件:

          | 啟動任務調度中心

          如下圖:

          瀏覽器訪問默認地址:http://localhost:8080/xxl-job-admin

          號:admin 密碼:123456 (初始狀態(tài)下)。


          | 登錄成功

          如下圖:

          到此為止,第一階段 xxl-job-admin?模塊的部署就完成啦。


          整合 SpringBoot 項目


          此部分官方已經給出具體案例,我們只需對趕方案例進行整合或修改即可。

          接下來就是如何整合到自己的 SpringBoot 項目中。


          | 引入 maven 依賴

          如下圖:

          注意:此處版本要與 xxl-job-admin 中版本保持一致。


          | 引入配置類

          如下圖:

          只需引入 XxlJobConfig 配置類即可,其他配置類為該項目其他配置類,與此無關!
          可以直接從拉取的項目中復制過來,無需任何修改!!!復制此類到你的項目中即可!
          @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;
          ????}

          ????/**
          ?????*?針對多網卡、容器內部署等情況,可借助?"spring-cloud-commons"?提供的?"InetUtils"?組件靈活定制注冊IP;
          ?????*
          ?????*????? 1、引入依賴:
          ?????*??????????
          ?????*?????????????org.springframework.cloud
          ?????*?????????????spring-cloud-commons
          ?????*?????????????${version}
          ?????*?????????

          ?????*
          ?????*??????2、配置文件,或者容器啟動變量
          ?????*??????????spring.cloud.inetutils.preferred-networks:?'xxx.xxx.xxx.'
          ?????*
          ?????*??????3、獲取IP
          ?????*??????????String?ip_?=?inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
          ?????*/



          }


          | 修改 yml 配置文件

          代碼如下:

          xxl:
          ??job:
          ????admin:
          ??????#?調度中心部署跟地址?[選填]:如調度中心集群部署存在多個地址則用逗號分隔。
          ??????#?執(zhí)行器將會使用該地址進行"執(zhí)行器心跳注冊""任務結果回調";為空則關閉自動注冊;
          ??????addresses:?http://127.0.0.1:8086/xxl-job-admin
          ????#?執(zhí)行器通訊TOKEN [選填]:非空時啟用;
          ????accessToken:
          ????executor:
          ??????#?執(zhí)行器AppName [選填]:執(zhí)行器心跳注冊分組依據;為空則關閉自動注冊
          ??????appname:?xxl-job-executor-mileage
          ??????#?執(zhí)行器注冊?[選填]:優(yōu)先使用該配置作為注冊地址,為空時使用內嵌服務?”IP:PORT“?作為注冊地址。
          ??????#從而更靈活的支持容器類型執(zhí)行器動態(tài)IP和動態(tài)映射端口問題。
          ??????address:
          ??????#?執(zhí)行器IP [選填]:默認為空表示自動獲取IP,多網卡時可手動設置指定IP,該IP不會綁定Host僅作為通訊實用;
          ??????#?地址信息用于?"執(zhí)行器注冊"?和?"調度中心請求并觸發(fā)任務"
          ??????ip:
          ??????#?執(zhí)行器端口號?[選填]:小于等于0則自動獲取;默認端口為9999,單機部署多個執(zhí)行器時,注意要配置不同執(zhí)行器端口;
          ??????port:?8088
          ??????#?執(zhí)行器運行日志文件存儲磁盤路徑?[選填]?:需要對該路徑擁有讀寫權限;為空則使用默認路徑;
          ??????logpath:?/data/applogs/xxl-job/jobhandler
          ??????#?執(zhí)行器日志文件保存天數?[選填]?:?過期日志自動清理, 限制值大于等于3時生效;?否則, 如-1, 關閉自動清理功能;
          ??????logretentiondays:?30
          logging:
          ??config:?classpath:logback.xml??????


          | 編寫測試類

          代碼如下:

          @Component
          public?class?MileageXxlJob?{
          ????private?static?Logger?logger?=?LoggerFactory.getLogger(SampleXxlJob.class);


          ????/**
          ?????*?1、簡單任務示例(Bean模式)
          ?????*/

          ????@XxlJob("mileageJobHandler")
          ????public?void?mileageJobHandler()?throws?Exception?{
          ????????XxlJobHelper.log("XXL-JOB,?Hello?World.");

          ????????for?(int?i?=?0;?i?5;?i++)?{
          ????????????XxlJobHelper.log("beat?at:"?+?i);
          ????????????System.out.println("ok");
          ????????????TimeUnit.SECONDS.sleep(2);
          ????????}
          ????????//?default?success
          ????}
          }????

          項目目錄如下:

          編寫完成后,啟動服務!(注意啟動順序,先啟動 xxl-job-admin 模塊,再啟動您的 springboot 服務)


          | 任務調度中心,配置服務

          ①新增執(zhí)行器:
          ②新增任務:
          ③執(zhí)行任務:

          注:測試選擇執(zhí)行一次即可,如需項目保持運行,選擇啟動。


          ④查看運行結果:

          到此,XXL-JOB 與 SpringBoot 的簡單整合入門教程就完成了,感謝您的查閱!

          1.?輕量化日志Loki全攻略,再也不會整懵了

          2.?大廠干掉 OOM 的套路,你知道幾個 !

          3.?從 7 分鐘到 10 秒,Mybatis 批處理真的很強!

          4.?美哭了,一款面向程序員的 Markdown 筆記應用

          最近面試BAT,整理一份面試資料Java面試BATJ通關手冊,覆蓋了Java核心技術、JVM、Java并發(fā)、SSM、微服務、數據庫、數據結構等等。

          獲取方式:點“在看”,關注公眾號并回復?Java?領取,更多內容陸續(xù)奉上。

          PS:因公眾號平臺更改了推送規(guī)則,如果不想錯過內容,記得讀完點一下在看,加個星標,這樣每次新文章推送才會第一時間出現在你的訂閱列表里。

          “在看”支持小哈呀,謝謝啦??

          瀏覽 41
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91亚洲国产精品 | 五月婷婷久久怎么了呀 | 做爰 视频毛片下载蜜桃视频 | 国产美女一级毛片真精品酒店 | 成人网站WWW污污污网址 |