SpringBoot中使用Quartz設(shè)置定時任務(wù)的實例詳解
基礎(chǔ)使用
Quartz 的核心類有以下三部分:
- 任務(wù) Job : 需要實現(xiàn)的任務(wù)類,實現(xiàn)
execute()方法,執(zhí)行后完成任務(wù)。 - 觸發(fā)器 Trigger : 包括
SimpleTrigger和CronTrigger。 - 調(diào)度器 Scheduler : 任務(wù)調(diào)度器,負責(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類
這個類用來進行任務(wù)描述,進行定時執(zhí)行并將對應(yīng)的執(zhí)行邏輯類進行綁定
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 定義任務(wù)描述和具體的執(zhí)行時間
*/
@Configuration
public class QuartzConfig {
@Bean public JobDetail jobDetail() {
//指定任務(wù)描述具體的實現(xiàn)類
return JobBuilder.newJob(IDCardWarningJob.class)
// 指定任務(wù)的名稱
.withIdentity("IDCardWarningJob")
// 任務(wù)描述
.withDescription("任務(wù)描述:身份預(yù)警更新表")
// 每次任務(wù)執(zhí)行后進行存儲
.storeDurably()
.build();
}
@Bean
public Trigger trigger() {
//創(chuàng)建觸發(fā)器
return TriggerBuilder.newTrigger()
// 綁定工作任務(wù)
.forJob(jobDetail())
// .withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(1, 0)) // 設(shè)置每天凌晨1點觸發(fā)一次任務(wù)
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 1 * * ?")) // 設(shè)置每天凌晨1點觸發(fā)一次任務(wù)
.build();
}
}
demoJob類
這個類負責(zé)定時任務(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表達式可以跳轉(zhuǎn)這個連接->表達式生成器
以上就是SpringBoot中使用Quartz設(shè)置定時任務(wù)的實例詳解的詳細內(nèi)容,更多關(guān)于SpringBoot Quartz定時任務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java中g(shù)et/post的https請求忽略ssl證書認證淺析
因為Java在安裝的時候,會默認導(dǎo)入某些根證書,所以有些網(wǎng)站不導(dǎo)入證書,也可以使用Java進行訪問,這篇文章主要給大家介紹了關(guān)于Java中g(shù)et/post的https請求忽略ssl證書認證的相關(guān)資料,需要的朋友可以參考下2024-01-01
SpringCloud feign微服務(wù)調(diào)用之間的異常處理方式
這篇文章主要介紹了SpringCloud feign微服務(wù)調(diào)用之間的異常處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
springboot加載命令行參數(shù)ApplicationArguments的實現(xiàn)
本文主要介紹了springboot加載命令行參數(shù)ApplicationArguments的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
SpringBoot項目中rest接口定義與參數(shù)傳遞和接收方式
本文介紹了使用RestClient測試接口的兩種方式:form-data和content-type,form-data適用于所有請求方式,但URL長度有限制,content-type只適用于POST/DELETE/PUT請求,處理application/json格式參數(shù),對于參數(shù)較多的情況,建議使用JavaBean接收2026-04-04

