在SpringBoot2中整合Quartz實踐
1. 添加依賴
首先,你需要在你的pom.xml文件中添加Spring Boot和Quartz的依賴。
確保你的Spring Boot版本是2.x。
<dependencies>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Spring Boot Starter Quartz -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
</dependencies>
2. 配置Quartz
你可以通過application.properties或application.yml文件來配置Quartz的基本屬性,例如:
# application.properties spring.quartz.job-store-type=memory spring.quartz.properties.org.quartz.scheduler.instanceName=MyScheduler spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO
或者使用YAML格式:
# application.yml
spring:
quartz:
job-store-type: memory
properties:
org:
quartz:
scheduler:
instanceName: MyScheduler
instanceId: AUTO
3. 創(chuàng)建Job類
創(chuàng)建一個實現(xiàn)了org.quartz.Job接口的類。
例如:
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.stereotype.Component;
@Component
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Executing MyJob");
// 在這里添加你的業(yè)務(wù)邏輯代碼
}
}
4. 配置Trigger和Scheduler
你可以使用@Bean注解在配置類中定義一個JobDetail和Trigger,并將它們注冊到Quartz Scheduler中。
例如:
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.DateBuilder.futureDate;
import static org.quartz.TimeConstants.*;
@Configuration
public class QuartzConfig {
@Bean
public JobDetail myJobDetail() {
return newJob(MyJob.class).withIdentity("myJob").storeDurably().build();
}
@Bean
public Trigger myJobTrigger() {
return newTrigger().forJob(myJobDetail())
.withIdentity("myTrigger")
.startAt(futureDate(5, SECOND)) // 5秒后開始執(zhí)行任務(wù)
.withSchedule(simpleSchedule().withIntervalInSeconds(10).repeatForever()) // 每10秒重復(fù)執(zhí)行一次任務(wù)
.build();
}
}
5. 運行你的Spring Boot應(yīng)用
現(xiàn)在,當(dāng)你運行你的Spring Boot應(yīng)用時,Quartz將會根據(jù)配置自動調(diào)度任務(wù)。
你可以看到控制臺輸出定時任務(wù)的執(zhí)行結(jié)果。確保你的Spring Boot應(yīng)用能夠正確啟動并且沒有異常。
如果一切設(shè)置正確,你應(yīng)該能看到定時任務(wù)按照預(yù)定計劃執(zhí)行。
你可以通過訪問/actuator/quartz端點(如果你啟用了Spring Boot Actuator的話)來查看更多關(guān)于Quartz Scheduler的詳細(xì)信息。
例如:
http://localhost:8080/actuator/quartz/triggers 或 http://localhost:8080/actuator/quartz/jobs。
確保你已經(jīng)包含了Spring Boot Actuator的依賴,并在application.properties或application.yml中啟用了相應(yīng)的端點:
management.endpoints.web.exposure.include=*
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java自定義注解實現(xiàn)數(shù)據(jù)脫敏
在實際開發(fā)中經(jīng)常會遇到有一些信息不能全部展示用戶,需要隱藏(可以叫脫敏),所以本文為大家分享了利用自定義注解實現(xiàn)數(shù)據(jù)脫敏的示例代碼,需要的可以參考下2023-07-07
Java冪等性校驗解決重復(fù)點擊的六種實現(xiàn)方式
在分布式系統(tǒng)中,冪等性(Idempotency)是一個非常重要的概念,,冪等性操作指的是:無論這個操作執(zhí)行多少次,結(jié)果都應(yīng)該是相同的,這是為了避免重復(fù)執(zhí)行操作引起數(shù)據(jù)的不一致,本文給大家介紹了Java冪等性校驗解決重復(fù)點擊的六種實現(xiàn)方式,需要的朋友可以參考下2025-04-04
Idea中SpringBoot多模塊項目的建立實現(xiàn)
這篇文章主要介紹了Idea中SpringBoot多模塊項目的建立實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Java獲取本機(jī)IP地址的方法代碼示例(內(nèi)網(wǎng)、公網(wǎng))
在IT領(lǐng)域獲取本機(jī)IP地址是一項基礎(chǔ)但重要的任務(wù),特別是在網(wǎng)絡(luò)編程、遠(yuǎn)程協(xié)作和設(shè)備通信中,這篇文章主要給大家介紹了關(guān)于Java獲取本機(jī)IP地址的方法(內(nèi)網(wǎng)、公網(wǎng)),需要的朋友可以參考下2024-07-07
深入理解java內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)
這篇文章主要介紹了Java多線程之內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)的深入理解新的和用法,具有一定參考價值,需要的朋友可以了解下。2017-11-11
Java BufferedOutputStream類的常用方法講解
這篇文章主要介紹了Java BufferedOutputStream類的常用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
Maven介紹與配置+IDEA集成Maven+使用Maven命令小結(jié)
Maven是Apache軟件基金會的一個開源項目,是一個優(yōu)秀的項目構(gòu)建管理工具,它用來幫助開發(fā)者管理項目中的 jar,以及 jar 之間的依賴關(guān)系、完成項目的編譯、測試、打包和發(fā)布等工作,本文給大家介紹Maven介紹與配置+IDEA集成Maven+使用Maven命令,感興趣的朋友一起看看吧2024-01-01

