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

SpringBoot整合Xxl-job實現(xiàn)定時任務的全過程

 更新時間:2022年01月17日 11:23:23   作者:生命中有太多不確定  
XXL-JOB是一個分布式任務調度平臺,其核心設計目標是開發(fā)迅速、學習簡單、輕量級、易擴展,下面這篇文章主要給大家介紹了關于SpringBoot整合Xxl-job實現(xiàn)定時任務的相關資料,需要的朋友可以參考下

前言

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

如果是單機并且定時任務不多的情況,可以選擇Timer注解@Scheduled或者Cron工具類等方式來實現(xiàn),但是這有個缺點,那就是定時任務會寫死在代碼中,一旦啟動,就不能暫?;蛘咝薷?。如果修改的話,整個還項目要重新編譯,這屬實非常的麻煩。

? 本篇文章將會介紹如何通過xxl-job來實現(xiàn)任務的調度

一、部署調度中心

1、項目下載

下面是調度中心代碼的gitee地址,可以colon到本地

http://gitee.com/xuxueli0323/xxl-job

2、初始化數(shù)據

在下載好的項目中的doc/db目錄下有一個tables_xxl_job.sql文件,先放到自己的數(shù)據庫中執(zhí)行,其實就是初始化好調度中心需要的表結構和數(shù)據

3、修改properties配置文件

用IDE打開clone好的項目,然后修改xxl-job-admin模塊下的properties配置文件,只需要將連接數(shù)據庫的url、username、password修改成你自己的就可以。修改好之后就可以啟動xxl-job-admin調度中心了。然后打開http://localhost:8080/xxl-job-admin/就可以看到控制面板:

請?zhí)砑訄D片描述

二、部署SpringBoot項目

1、引入依賴

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

2、創(chuàng)建配置類

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

3、修改配置文件

xxl:
  job:
    admin:
      addresses: http://127.0.0.1:8080/xxl-job-admin #部署的調度中心的url
    executor:
      appname: xxl-job-volunteer-executor #執(zhí)行器的名字
      ip:
      port: 9999 #調度中心調用執(zhí)行器時使用的端口
      logpath: /data/apploggs/xxl-job/jobhandler #日志路徑
      logretentiondays: 30 #日志保留天數(shù)
    accessToken:

4、創(chuàng)建執(zhí)行器

@Component
public class XxlJobSample {

    // myDemoJob是任務的名字,也是Spring中bean的名字
    @XxlJob("myDemoJob")
    public ReturnT<String> myDemoJob(String value) {
        System.out.println("myDemoJob:定時任務觸發(fā):" + value);
        return ReturnT.SUCCESS;
    }
    
}

5、啟動SpringBoot項目

啟動成功后會看到下面兩行日志信息, 可以看到成功連接到了調度中心然后注冊了將要被調度任務

 >>>>>>>>>>> xxl-job register jobhandler success, name:myDemoJob, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@1f94dd63[class com.volunteer.component.XxlJobSample#myDemoJob]
 
 >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9999

三、通過調度中心進行任務調度

1、添加執(zhí)行器

請?zhí)砑訄D片描述

輸入配置文件中配置的appName,名稱可以隨意

請?zhí)砑訄D片描述

2、添加任務

新增調度任務

請?zhí)砑訄D片描述

請?zhí)砑訄D片描述

查看調度任務

請?zhí)砑訄D片描述

3、任務調度中心發(fā)起任務調度

請?zhí)砑訄D片描述

在SpringBoot項目中可以看到控制臺輸出如下信息:

2022-01-16 11:54:05.039  INFO 7836 --- [Pool-1148366645] c.xxl.job.core.executor.XxlJobExecutor   : >>>>>>>>>>> xxl-job regist JobThread success, jobId:7, handler:com.xxl.job.core.handler.impl.MethodJobHandler@1f94dd63[class com.volunteer.component.XxlJobSample#myDemoJob]
myDemoJob:定時任務觸發(fā):testParam
2022-01-16 11:55:38.059  INFO 7836 --- [      Thread-22] com.xxl.job.core.thread.JobThread        : >>>>>>>>>>> xxl-job JobThread stoped, hashCode:Thread[Thread-22,10,main]

四、小結

至此,SpringBoot整合Xxl-job就完成了,剛才的示例代碼其實對于原來的項目還是有一定的侵入性的,上面僅僅演示了BEAN運行模式,說白了就是調用加了@XxlJob的方法。其實在創(chuàng)建任務的時候還可以嘗試使用GLUE(Java)這一運行模式,這種方式其實就是執(zhí)行你輸入的Java代碼,這種方式可以不用在原有的項目之上新增依賴或者配置,對于定時任務,只需要編寫一個接口用于觸發(fā),然后GLUE(Java)任務定時的去請求暴露的接口即可

下面是代碼片段:

public class DemoGlueJobHandler extends IJobHandler {

	@Override
	public void execute() throws Exception {
		XxlJobHelper.log("定時任務執(zhí)行了一次");
        HttpRequest.post("http://localhost:8088/oos/test")
                  .header(Header.USER_AGENT, "xxl-job")//頭信息,多個頭信息多次調用此方法即可
                  .timeout(20000)//超時,毫秒
                  .execute();
	}

}

上面的代碼其實會在執(zhí)行器中進行執(zhí)行,可以實現(xiàn)在Test里面跑一下,沒有問題后再貼過來(還要注意復制import等信息)

以上就是今天的全部內容了,想了解更多,可以閱讀官方文檔

總結

到此這篇關于SpringBoot整合Xxl-job實現(xiàn)定時任務的文章就介紹到這了,更多相關SpringBoot整合Xxl-job實現(xiàn)定時任務內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringMVC實現(xiàn)文件上傳與下載

    SpringMVC實現(xiàn)文件上傳與下載

    這篇文章主要為大家詳細介紹了SpringMVC實現(xiàn)文件上傳與下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • JavaWeb入門:HttpResponse和HttpRequest詳解

    JavaWeb入門:HttpResponse和HttpRequest詳解

    這篇文章主要介紹了Django的HttpRequest和HttpResponse對象,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2021-07-07
  • SpringBoot項目更換項目名稱的實現(xiàn)

    SpringBoot項目更換項目名稱的實現(xiàn)

    本文主要介紹了SpringBoot項目更換項目名稱,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • jboss配置方法簡明教程

    jboss配置方法簡明教程

    這篇文章主要介紹了jboss配置方法,較為簡明扼要的說明了jboss服務器所需要的JDK環(huán)境安裝設置以及jboss的安裝與下載,并分析了配置與使用中的常見問題,需要的朋友可以參考下
    2016-08-08
  • Java MultipartFile實現(xiàn)上傳文件/上傳圖片

    Java MultipartFile實現(xiàn)上傳文件/上傳圖片

    這篇文章主要介紹了Java MultipartFile實現(xiàn)上傳文件/上傳圖片,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • Java實現(xiàn)計算器的代碼

    Java實現(xiàn)計算器的代碼

    這篇文章主要為大家介紹了Java實現(xiàn)計算器的詳細代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • java中Scanner.next()和Scanner.nextLine的區(qū)別圖文詳解

    java中Scanner.next()和Scanner.nextLine的區(qū)別圖文詳解

    使用java語言編程,最常用的輸入就是使用Scanner了,它的構造很簡單,這篇文章主要給大家介紹了關于java中Scanner.next()和Scanner.nextLine區(qū)別的相關資料,需要的朋友可以參考下
    2024-02-02
  • idea中acitviti使用acitBPM插件出現(xiàn)亂碼問題及解決方法

    idea中acitviti使用acitBPM插件出現(xiàn)亂碼問題及解決方法

    這篇文章主要介紹了idea中acitviti使用acitBPM插件出現(xiàn)亂碼問題及解決方法,通過將File Encodings內容設置為UTF-8,本文通過圖文展示,需要的朋友可以參考下
    2021-06-06
  • springboot項目打成jar包后無法獲取static下的靜態(tài)資源文件的問題分析

    springboot項目打成jar包后無法獲取static下的靜態(tài)資源文件的問題分析

    這篇文章主要介紹了springboot項目打成jar包后無法獲取static下的靜態(tài)資源文件的問題分析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 關于Maven如何構建生命周期

    關于Maven如何構建生命周期

    這篇文章主要介紹了關于Maven如何構建生命周期,Maven構建生命周期描述的是一次構建過程經歷經歷了多少個事件,需要的朋友可以參考下
    2023-04-04

最新評論

浮山县| 扶绥县| 门源| 衡东县| 临海市| 荥经县| 榆林市| 玛曲县| 且末县| 竹北市| 鄂尔多斯市| 德清县| 定陶县| 长寿区| 砚山县| 丰都县| 平原县| 西吉县| 定结县| 临武县| 咸宁市| 衢州市| 陆良县| 南康市| 普格县| 临沂市| 昌黎县| 江西省| 云龙县| 邮箱| 盈江县| 孝义市| 新昌县| 衡南县| 嘉黎县| 青海省| 巴彦淖尔市| 江北区| 比如县| 秦安县| 仙居县|