SpringBoot中使用Quartz設(shè)置定時(shí)任務(wù)的實(shí)例詳解
基礎(chǔ)使用
Quartz 的核心類有以下三部分:
- 任務(wù) Job : 需要實(shí)現(xiàn)的任務(wù)類,實(shí)現(xiàn)
execute()方法,執(zhí)行后完成任務(wù)。 - 觸發(fā)器 Trigger : 包括
SimpleTrigger和CronTrigger。 - 調(diào)度器 Scheduler : 任務(wù)調(diào)度器,負(fù)責(zé)基于
Trigger觸發(fā)器,來執(zhí)行 Job任務(wù)。
添加依賴
<!-- 核心包 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
<!-- 工具包 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.3.0</version>
</dependency>
demo
QuartzConfig類
這個(gè)類用來進(jìn)行任務(wù)描述,進(jìn)行定時(shí)執(zhí)行并將對(duì)應(yīng)的執(zhí)行邏輯類進(jìn)行綁定
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 定義任務(wù)描述和具體的執(zhí)行時(shí)間
*/
@Configuration
public class QuartzConfig {
@Bean public JobDetail jobDetail() {
//指定任務(wù)描述具體的實(shí)現(xiàn)類
return JobBuilder.newJob(IDCardWarningJob.class)
// 指定任務(wù)的名稱
.withIdentity("IDCardWarningJob")
// 任務(wù)描述
.withDescription("任務(wù)描述:身份預(yù)警更新表")
// 每次任務(wù)執(zhí)行后進(jìn)行存儲(chǔ)
.storeDurably()
.build();
}
@Bean
public Trigger trigger() {
//創(chuàng)建觸發(fā)器
return TriggerBuilder.newTrigger()
// 綁定工作任務(wù)
.forJob(jobDetail())
// .withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(1, 0)) // 設(shè)置每天凌晨1點(diǎn)觸發(fā)一次任務(wù)
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 1 * * ?")) // 設(shè)置每天凌晨1點(diǎn)觸發(fā)一次任務(wù)
.build();
}
}
demoJob類
這個(gè)類負(fù)責(zé)定時(shí)任務(wù)的邏輯處理(execute方法中寫代碼邏輯)
import com.alibaba.druid.support.logging.Log;
import com.alibaba.druid.support.logging.LogFactory;
import com.iknight.cost.service.IdentityWarningService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
public class IDCardWarningJob implements Job {
private static final Log logger = LogFactory.getLog(IDCardWarningJob.class);
@Autowired
private IdentityWarningService service;
public void setClaimPostServiceImpl(IdentityWarningService service) {
this.service = service;
}
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
service.updateDate();
}
}
關(guān)于cron表達(dá)式可以跳轉(zhuǎn)這個(gè)連接->表達(dá)式生成器
以上就是SpringBoot中使用Quartz設(shè)置定時(shí)任務(wù)的實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot Quartz定時(shí)任務(wù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java核心編程之文件隨機(jī)讀寫類RandomAccessFile詳解
這篇文章主要為大家詳細(xì)介紹了Java核心編程之文件隨機(jī)讀寫類RandomAccessFile,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
java?SpringBootWeb請(qǐng)求響應(yīng)舉例詳解
SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開發(fā)的腳手架,這篇文章主要給大家介紹了關(guān)于java?SpringBootWeb請(qǐng)求響應(yīng)的相關(guān)資料,需要的朋友可以參考下2024-05-05
基于FlashPaper實(shí)現(xiàn)JSP在線閱讀代碼示例
這篇文章主要介紹了基于FlashPaper實(shí)現(xiàn)JSP在線閱讀代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
springboot項(xiàng)目編譯提示無效的源發(fā)行版17解決辦法
這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目編譯提示無效的源發(fā)行版17解決辦法,這個(gè)錯(cuò)誤意味著你的Spring Boot項(xiàng)目正在使用Java 17這個(gè)版本,但是你的項(xiàng)目中未配置正確的Java版本,需要的朋友可以參考下2023-06-06
spring一個(gè)項(xiàng)目多個(gè)模塊聚合打包問題解決方案(最新推薦)
最近遇到個(gè)需求,針對(duì)后端解耦模塊較多的項(xiàng)目,想在云端啟動(dòng)時(shí)簡(jiǎn)潔些只啟動(dòng)一個(gè)jar文件的情景,本文重點(diǎn)給大家介紹spring一個(gè)項(xiàng)目多個(gè)模塊聚合打包問題解決方案,感興趣的朋友一起看看吧2023-09-09
Java并發(fā)系列之AbstractQueuedSynchronizer源碼分析(條件隊(duì)列)
這篇文章主要為大家詳細(xì)介紹了Java并發(fā)系列之AbstractQueuedSynchronizer源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
Java 詳細(xì)講解分治算法如何實(shí)現(xiàn)歸并排序
分治算法的基本思想是將一個(gè)規(guī)模為N的問題分解為K個(gè)規(guī)模較小的子問題,這些子問題相互獨(dú)立且與原問題性質(zhì)相同。求出子問題的解,就可得到原問題的解,本篇文章我們就用分治算法來實(shí)現(xiàn)歸并排序2022-04-04
java 獲取項(xiàng)目文件路徑實(shí)現(xiàn)方法
以下是對(duì)java中獲取項(xiàng)目文件路徑的實(shí)現(xiàn)方法進(jìn)行了介紹,需要的朋友可以過來參考下2013-09-09

