springboot定时任务示例
时间: 2023-07-11 18:53:02 浏览: 108
好的,以下是一个简单的Spring Boot定时任务示例:
1. 首先,在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
```
2. 在application.properties文件中配置Quartz:
```
# 配置Quartz
spring.quartz.job-store-type=jdbc
spring.quartz.jdbc.initialize-schema=always
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
```
3. 创建一个定时任务执行的方法,比如:
```
public void executeTask() {
// 这里编写需要执行的任务逻辑
}
```
4. 创建一个定时任务配置类,用于配置定时任务的执行时间、触发器等:
```
@Configuration
public class ScheduleTaskConfig {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private TriggerBuilderFactory triggerBuilderFactory;
@Bean
public JobDetail scheduleTaskDetail() {
return jobBuilderFactory.get("scheduleTaskDetail")
.storeDurably()
.withDescription("定时任务执行方法")
.withIdentity(new JobKey("scheduleTask"))
.usingJobData("task", "scheduleTask")
.build();
}
@Bean
public Trigger scheduleTaskTrigger() {
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10) // 定时任务执行的间隔时间
.repeatForever();
return triggerBuilderFactory.get("scheduleTaskTrigger")
.withIdentity(new TriggerKey("scheduleTask"))
.withSchedule(scheduleBuilder)
.forJob(scheduleTaskDetail())
.build();
}
}
```
5. 注册定时任务:
```
@Configuration
public class ScheduleTaskConfig {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private TriggerBuilderFactory triggerBuilderFactory;
@Autowired
private ApplicationContext applicationContext;
@Bean
public JobDetail scheduleTaskDetail() {
return jobBuilderFactory.get("scheduleTaskDetail")
.storeDurably()
.withDescription("定时任务执行方法")
.withIdentity(new JobKey("scheduleTask"))
.usingJobData("task", "scheduleTask")
.build();
}
@Bean
public Trigger scheduleTaskTrigger() {
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10) // 定时任务执行的间隔时间
.repeatForever();
return triggerBuilderFactory.get("scheduleTaskTrigger")
.withIdentity(new TriggerKey("scheduleTask"))
.withSchedule(scheduleBuilder)
.forJob(scheduleTaskDetail())
.build();
}
@Bean
public Scheduler scheduler() throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.setJobFactory(new SpringBeanJobFactory());
scheduler.scheduleJob(scheduleTaskDetail(), scheduleTaskTrigger());
return scheduler;
}
}
```
6. 最后,在需要启动定时任务的地方添加以下代码:
```
@Autowired
private Scheduler scheduler;
@PostConstruct
public void start() throws SchedulerException {
scheduler.start();
}
```
这样就完成了一个简单的Spring Boot定时任务示例。
阅读全文
相关推荐















