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

springboot整合quartz實例demo

 更新時間:2022年02月15日 15:09:59   作者:東楚  
Quartz是一個開源的任務(wù)調(diào)度框架?;诙〞r、定期的策略來執(zhí)行任務(wù)是它的核心功能,比如x年x月的每個星期五上午8點到9點,每隔10分鐘執(zhí)行1次,本文重點給大家介紹springboot整合quartz的實例代碼,感興趣的朋友一起看看吧

一、quartz簡介

1.Quartz是一個開源的任務(wù)調(diào)度框架。基于定時、定期的策略來執(zhí)行任務(wù)是它的核心功能,比如x年x月的每個星期五上午8點到9點,每隔10分鐘執(zhí)行1次。

2.Quartz有3個核心要素:調(diào)度器(Scheduler)、任務(wù)(Job)、觸發(fā)器(Trigger)。

2.1.Job(任務(wù)):是一個接口,有一個方法void execute(),可以通過實現(xiàn)該接口來定義需要執(zhí)行的任務(wù)(具體的邏輯代碼)。
2.2.JobDetail:Quartz每次執(zhí)行job時,都重新創(chuàng)建一個Job實例,會接收一個Job實現(xiàn)類,以便運行的時候通過newInstance()的反射調(diào)用機制去實例化Job.JobDetail是用來描述Job實現(xiàn)類以及相關(guān)靜態(tài)信息,比如任務(wù)在scheduler中的組名等信息。
2.3.Trigger(觸發(fā)器):描述觸發(fā)Job執(zhí)行的時間觸發(fā)規(guī)則實現(xiàn)類SimpleTrigger和CronTrigger可以通過crom表達式定義出各種復(fù)雜的調(diào)度方案。
2.4.Calendar:是一些日歷特定時間的集合。一個Trigger可以和多個 calendar關(guān)聯(lián),比如每周一早上10:00執(zhí)行任務(wù),法定假日不執(zhí)行,則可以通過calendar進行定點排除。
2.5.Scheduler(調(diào)度器):代表一個Quartz的獨立運行容器。Trigger和JobDetail可以注冊到Scheduler中。Scheduler可以將Trigger綁定到某一JobDetail上,這樣當(dāng)Trigger被觸發(fā)時,對應(yīng)的Job就會執(zhí)行。一個Job可以對應(yīng)多個Trigger,但一個Trigger只能對應(yīng)一個Job.

二、demo結(jié)構(gòu)

三、代碼詳解

pom.xml

<!--spring boot集成quartz-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

DateTimeJob.java(具體的業(yè)務(wù)邏輯代碼寫在這里)
job任務(wù)中執(zhí)行邏輯代碼實現(xiàn)任務(wù)的定時使用

public class DateTimeJob extends QuartzJobBean {
 
    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //獲取JobDetail中關(guān)聯(lián)的數(shù)據(jù)
        String msg = (String) jobExecutionContext.getJobDetail().getJobDataMap().get("msg");
        System.out.println("current time :"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "---" + msg);
    }
}

QuartzConfig.java(配置類)
類中定義job執(zhí)行周期及詳細配置

@Configuration
public class QuartzConfig {
    @Bean
    public JobDetail printTimeJobDetail(){
        return JobBuilder.newJob(DateTimeJob.class)//PrintTimeJob我們的業(yè)務(wù)類
                .withIdentity("DateTimeJob")//可以給該JobDetail起一個id
                //每個JobDetail內(nèi)都有一個Map,包含了關(guān)聯(lián)到這個Job的數(shù)據(jù),在Job類中可以通過context獲取
                .usingJobData("msg", "Hello Quartz")//關(guān)聯(lián)鍵值對
                .storeDurably()//即使沒有Trigger關(guān)聯(lián)時,也不需要刪除該JobDetail
                .build();
    }
    @Bean
    public Trigger printTimeJobTrigger() {
        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/1 * * * * ?");
        return TriggerBuilder.newTrigger()
                .forJob(printTimeJobDetail())//關(guān)聯(lián)上述的JobDetail
                .withIdentity("quartzTaskService")//給Trigger起個名字
                .withSchedule(cronScheduleBuilder)
                .build();
    }
}

四、代碼效果

到此這篇關(guān)于springboot整合quartz的文章就介紹到這了,更多相關(guān)springboot整合quartz內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Set與List的關(guān)系與區(qū)別介紹

    Java中Set與List的關(guān)系與區(qū)別介紹

    這篇文章主要介紹了Java中Set與List的關(guān)系與區(qū)別介紹,本文總結(jié)它們兩個接口都是繼承自Collection、它們之間的存儲方式不一樣,需要的朋友可以參考下
    2015-03-03
  • mybatis中的字符串拼接問題

    mybatis中的字符串拼接問題

    這篇文章主要介紹了mybatis中的字符串拼接問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 淺談Arrays.asList() 和ArrayList類型區(qū)別

    淺談Arrays.asList() 和ArrayList類型區(qū)別

    下面小編就為大家?guī)硪黄狝rrays.asList() 和ArrayList類型區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Java實現(xiàn)讀取Jar文件屬性的方法詳解

    Java實現(xiàn)讀取Jar文件屬性的方法詳解

    這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)讀取Jar文件屬性的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08
  • Java Linkedlist原理及實例詳解

    Java Linkedlist原理及實例詳解

    這篇文章主要介紹了Java Linkedlist原理及實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Java使用觀察者模式實現(xiàn)氣象局高溫預(yù)警功能示例

    Java使用觀察者模式實現(xiàn)氣象局高溫預(yù)警功能示例

    這篇文章主要介紹了Java使用觀察者模式實現(xiàn)氣象局高溫預(yù)警功能,結(jié)合完整實例形式分析了java觀察者模式實現(xiàn)氣象局高溫預(yù)警的相關(guān)接口定義、使用、功能操作技巧,并總結(jié)了其設(shè)計原則與適用場合,具有一定參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • Spring Boot 如何整合連接池

    Spring Boot 如何整合連接池

    這篇文章主要介紹了Spring Boot 如何整合連接池,幫助大家更好的理解和學(xué)習(xí)spring boot框架,感興趣的朋友可以了解下
    2020-11-11
  • Java中啟動線程start和run的兩種方法

    Java中啟動線程start和run的兩種方法

    start()方法它的作用是啟動一個新線程,run()就和普通的成員方法一樣,可以被重復(fù)調(diào)用。接下來通過本文給大家分享Java中啟動線程start和run的兩種方法,需要的朋友參考下吧
    2017-11-11
  • Java基于elasticsearch實現(xiàn)集群管理

    Java基于elasticsearch實現(xiàn)集群管理

    這篇文章主要介紹了java基于elasticsearch實現(xiàn)集群管理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • JavaPoet的使用指南小結(jié)

    JavaPoet的使用指南小結(jié)

    這篇文章主要介紹了JavaPoet的使用指南小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10

最新評論