SpringBoot——Quartz 定时任务
在Spring Boot中使用Quartz创建一个简单的定时任务可以通过以下步骤实现:
- 添加依赖到你的
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
- 创建一个定时任务的Job类:
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class SampleJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 你的任务逻辑
System.out.println("定时任务执行: " + System.currentTimeMillis());
}
}
- 配置Quartz定时任务:
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.TimeUnit;
@Configuration
public class QuartzConfig {
@Bean
public JobDetail sampleJobDetail() {
return JobBuilder.newJob(SampleJob.class).withIdentity("sampleJob").storeDurably().build();
}
@Bean
public Trigger sampleJobTrigger() {
return TriggerBuilder.newTrigger().forJob(sampleJobDetail())
.withIdentity("sampleTrigger")
.withSchedule(cronSchedule("0/5 * * * * ?")) // 每5秒执行一次
.build();
}
}
- 确保你的Spring Boot应用程序启动类上有
@EnableScheduling
注解:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
以上代码创建了一个每5秒执行一次的定时任务。你可以通过修改cronSchedule
的表达式来调整任务的执行频率。Quartz的Cron表达式非常灵活,可以配置复杂的执行计划。
评论已关闭