1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 3633字,需瀏覽 8分鐘

         ·

        2022-05-15 15:28

        點擊關(guān)注公眾號,Java干貨及時送達??

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


        目錄

        • 前言

        • xxl-job-admin 搭建

        • 整合 SpringBoot 項目

        前言


        XXL-JOB 是一個輕量級分布式任務(wù)調(diào)度平臺,其核心設(shè)計目標是開發(fā)迅速、學(xué)習(xí)簡單、輕量級、易擴展?,F(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用。


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


        xxl-job-admin 搭建


        | 拉取代碼

        代碼結(jié)構(gòu)如下:
        運行 SQL 文件至本地數(shù)據(jù)庫:
        修改 xxl-job-admin 模塊的 yml 文件:

        | 啟動任務(wù)調(diào)度中心

        如下圖:

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

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


        | 登錄成功

        如下圖:

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


        整合 SpringBoot 項目


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

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


        | 引入 maven 依賴

        如下圖:

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


        | 引入配置類

        如下圖:

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

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


        | 編寫測試類

        代碼如下:

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


        ????/**
        ?????*?1、簡單任務(wù)示例(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
        ????}
        }????

        項目目錄如下:

        編寫完成后,啟動服務(wù)?。ㄗ⒁鈫禹樞?,先啟動 xxl-job-admin 模塊,再啟動您的 springboot 服務(wù))


        | 任務(wù)調(diào)度中心,配置服務(wù)

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

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


        ④查看運行結(jié)果:

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

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

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

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

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

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

        獲取方式:點“在看”,關(guān)注公眾號并回復(fù)?Java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

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

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

        瀏覽 41
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            精品一区电影国产 | 国产精品露脸自拍 | 热99在线视频观看 | 国产成人视频免费观看 | 丁香五月婷婷综合 | 亚洲中文字电影 | 18禁免费看片 | 好骚综合婷婷 | 国产又黑又硬又爽的视频 | 啊好爽用力 |