亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java使用quartz實(shí)現(xiàn)定時(shí)任務(wù)示例詳解

 更新時(shí)間:2022年08月09日 16:42:35   作者:奔跑的毛球  
這篇文章主要為大家介紹了Java使用quartz實(shí)現(xiàn)定時(shí)任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

最近新到了一個(gè)項(xiàng)目,用到定時(shí)任務(wù)的地方是真滴多。

就稍微研究了一下,來做個(gè)demo。

其實(shí)定時(shí)任務(wù)使用很廣泛也很方便,之前做的人事管理項(xiàng)目,就會定期執(zhí)行定時(shí)任務(wù)計(jì)算工資,對于一個(gè)saas服務(wù)來說,即時(shí)的計(jì)算所有員工的工資有點(diǎn)奢侈,所以在每周末計(jì)算一次就ok了。

國外有的公司是一周發(fā)一次工資,所以當(dāng)時(shí)的邏輯是一周算一次。在國內(nèi)就一月一次很ok了。在當(dāng)時(shí)的report服務(wù)中,也是定時(shí)任務(wù)同步數(shù)據(jù)到Birt服務(wù),然后展現(xiàn)數(shù)據(jù)。

現(xiàn)在的項(xiàng)目中使用的就更多了。把一些耗費(fèi)性能的,數(shù)據(jù)即時(shí)性不強(qiáng)的都可以用定時(shí)任務(wù)在服務(wù)器負(fù)載不高的時(shí)候進(jìn)行計(jì)算。比如半夜計(jì)算商城用戶的積分,半夜計(jì)算銀行用戶行為產(chǎn)生的積分。銀行系統(tǒng)半夜計(jì)算罰息復(fù)利等。都是定時(shí)任務(wù)很好的應(yīng)用例子。

下來我們舉一個(gè)列子來實(shí)現(xiàn)一個(gè)定時(shí)任務(wù)。

配置文件

sue.spring.quartz.cron=*/5 * * * * ?

pom

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

定時(shí)任務(wù)和觸發(fā)器

package com.luke.demo.schedule;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class QuartzConfig {
    @Value("${sue.spring.quartz.cron}")
    private String testCron;
    /**
     * 創(chuàng)建定時(shí)任務(wù)
     */
    @Bean
    public JobDetail quartzTestDetail() {
        JobDetail jobDetail = JobBuilder.newJob(QuartzTestJob.class)
                //添加認(rèn)證信息
                .withIdentity("quartzTestDetail", "QUARTZ_TEST")
                .build();
        return jobDetail;
    }
    /**
     * 創(chuàng)建觸發(fā)器
     */
    @Bean
    public Trigger quartzTestJobTrigger() {
        //執(zhí)行頻率
        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(testCron);
        //創(chuàng)建觸發(fā)器
        Trigger trigger = TriggerBuilder.newTrigger()
                .forJob(quartzTestDetail())
                //添加認(rèn)證信息
                .withIdentity("quartzTestJobTrigger", "QUARTZ_TEST_JOB_TRIGGER")
                //添加執(zhí)行規(guī)則
                .withSchedule(cronScheduleBuilder)
                .build();
        return trigger;
    }
}

定時(shí)任務(wù)的業(yè)務(wù)代碼

這里的QuartzTestJob如下,方法executeInternal里就是需要定時(shí)執(zhí)行的任務(wù)。

public class QuartzTestJob extends QuartzJobBean {
    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
        System.out.println("現(xiàn)在是"+ new Date());
    }
}

當(dāng)項(xiàng)目啟動起來之后,就會按照設(shè)定的頻率輸出如下:

當(dāng)然也可以啟動定時(shí)任務(wù)查詢?nèi)降姆祷亟Y(jié)果,之前做車抵貸業(yè)務(wù)的風(fēng)控系統(tǒng)的時(shí)候,請求了三方的數(shù)據(jù),主動請求然后定時(shí)任務(wù)輪詢結(jié)果。

現(xiàn)在看來,用消息隊(duì)列實(shí)現(xiàn)也是很每秒,延時(shí)消息剛好可以滿足這個(gè)業(yè)務(wù)需求,請求數(shù)據(jù)然后向消息隊(duì)列中放入一個(gè)延時(shí)消息,時(shí)間到了,去請求結(jié)果,若是沒好,就再往消息隊(duì)列中放入一個(gè)延時(shí)消息。這樣相對于定時(shí)任務(wù)的好處是,避免了CPU空轉(zhuǎn),提升了性能。

以上就是Java使用quartz實(shí)現(xiàn)定時(shí)任務(wù)示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Java quartz實(shí)現(xiàn)定時(shí)任務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java NegativeArraySizeException異常解決方案

    Java NegativeArraySizeException異常解決方案

    這篇文章主要介紹了Java NegativeArraySizeException異常解決方案,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java中的CountDownLatch同步工具類使用解析

    Java中的CountDownLatch同步工具類使用解析

    這篇文章主要介紹了Java中的CountDownLatch使用解析,CountDownLatch初始化的時(shí)候必須指定一個(gè)count,await方法會一直阻塞直到調(diào)用countdown方法,count為0,當(dāng)count為0時(shí),所有的等待線程都會被釋放,需要的朋友可以參考下
    2023-12-12
  • Java之打印String對象的地址

    Java之打印String對象的地址

    這篇文章主要介紹了Java之打印String對象的地址,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • JavaPoet的使用指南小結(jié)

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

    這篇文章主要介紹了JavaPoet的使用指南小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • SpringBoot實(shí)現(xiàn)RAS+AES自動接口解密

    SpringBoot實(shí)現(xiàn)RAS+AES自動接口解密

    本文主要介紹了SpringBoot實(shí)現(xiàn)RAS+AES自動接口解密,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • java編寫全年考勤日歷

    java編寫全年考勤日歷

    這篇文章主要為大家詳細(xì)介紹了java編寫全年考勤日歷,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 淺談idea中導(dǎo)入maven項(xiàng)目的兩種方式

    淺談idea中導(dǎo)入maven項(xiàng)目的兩種方式

    本文主要介紹了淺談idea中導(dǎo)入maven項(xiàng)目的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • SpringCache快速使用及入門案例

    SpringCache快速使用及入門案例

    Spring Cache 是Spring 提供的一整套的緩存解決方案,它不是具體的緩存實(shí)現(xiàn),本文主要介紹了SpringCache快速使用及入門案例,感興趣的可以了解一下
    2023-08-08
  • SpringMVC---配置與使用的示例

    SpringMVC---配置與使用的示例

    這篇文章主要介紹了SpringMVC---配置與使用的示例,幫助大家更好的理解和學(xué)習(xí)spring框架,感興趣的朋友可以了解下
    2020-10-10
  • SpringBoot+JWT實(shí)現(xiàn)注冊、登錄、狀態(tài)續(xù)簽流程分析

    SpringBoot+JWT實(shí)現(xiàn)注冊、登錄、狀態(tài)續(xù)簽流程分析

    這篇文章主要介紹了SpringBoot+JWT實(shí)現(xiàn)注冊、登錄、狀態(tài)續(xù)簽【登錄保持】,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評論