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

SpringBoot整合Xxl-job實(shí)現(xiàn)定時(shí)任務(wù)的全過(guò)程

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

前言

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

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

? 本篇文章將會(huì)介紹如何通過(guò)xxl-job來(lái)實(shí)現(xiàn)任務(wù)的調(diào)度

一、部署調(diào)度中心

1、項(xiàng)目下載

下面是調(diào)度中心代碼的gitee地址,可以colon到本地

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

2、初始化數(shù)據(jù)

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

3、修改properties配置文件

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

請(qǐng)?zhí)砑訄D片描述

二、部署SpringBoot項(xiàng)目

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 #部署的調(diào)度中心的url
    executor:
      appname: xxl-job-volunteer-executor #執(zhí)行器的名字
      ip:
      port: 9999 #調(diào)度中心調(diào)用執(zhí)行器時(shí)使用的端口
      logpath: /data/apploggs/xxl-job/jobhandler #日志路徑
      logretentiondays: 30 #日志保留天數(shù)
    accessToken:

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

@Component
public class XxlJobSample {

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

5、啟動(dòng)SpringBoot項(xiàng)目

啟動(dòng)成功后會(huì)看到下面兩行日志信息, 可以看到成功連接到了調(diào)度中心然后注冊(cè)了將要被調(diào)度任務(wù)

 >>>>>>>>>>> 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

三、通過(guò)調(diào)度中心進(jìn)行任務(wù)調(diào)度

1、添加執(zhí)行器

請(qǐng)?zhí)砑訄D片描述

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

請(qǐng)?zhí)砑訄D片描述

2、添加任務(wù)

新增調(diào)度任務(wù)

請(qǐng)?zhí)砑訄D片描述

請(qǐng)?zhí)砑訄D片描述

查看調(diào)度任務(wù)

請(qǐng)?zhí)砑訄D片描述

3、任務(wù)調(diào)度中心發(fā)起任務(wù)調(diào)度

請(qǐng)?zhí)砑訄D片描述

在SpringBoot項(xiàng)目中可以看到控制臺(tái)輸出如下信息:

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:定時(shí)任務(wù)觸發(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]

四、小結(jié)

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

下面是代碼片段:

public class DemoGlueJobHandler extends IJobHandler {

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

}

上面的代碼其實(shí)會(huì)在執(zhí)行器中進(jìn)行執(zhí)行,可以實(shí)現(xiàn)在Test里面跑一下,沒(méi)有問(wèn)題后再貼過(guò)來(lái)(還要注意復(fù)制import等信息)

以上就是今天的全部?jī)?nèi)容了,想了解更多,可以閱讀官方文檔

總結(jié)

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

相關(guān)文章

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

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

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

    JavaWeb入門:HttpResponse和HttpRequest詳解

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

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

    本文主要介紹了SpringBoot項(xiàng)目更換項(xiàng)目名稱,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • jboss配置方法簡(jiǎn)明教程

    jboss配置方法簡(jiǎn)明教程

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

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

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

    Java實(shí)現(xiàn)計(jì)算器的代碼

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

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

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

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

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

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

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

    關(guān)于Maven如何構(gòu)建生命周期

    這篇文章主要介紹了關(guān)于Maven如何構(gòu)建生命周期,Maven構(gòu)建生命周期描述的是一次構(gòu)建過(guò)程經(jīng)歷經(jīng)歷了多少個(gè)事件,需要的朋友可以參考下
    2023-04-04

最新評(píng)論

大宁县| 垦利县| 屏山县| 微博| 芜湖市| 湟中县| 韩城市| 尼木县| 枞阳县| 孙吴县| 肥乡县| 沂水县| 交口县| 曲靖市| 龙海市| 方山县| 肥城市| 伊宁县| 舞阳县| 海淀区| 遂川县| 布拖县| 康保县| 巍山| 玉山县| 遂溪县| 青河县| 保亭| 多伦县| 海伦市| 伊宁县| 宁陕县| 手游| 唐海县| 漳浦县| 浑源县| 华阴市| 德江县| 张家港市| 万宁市| 和平县|