基于springboot开发实现定时任务的几种方式 具体代码写出来
时间: 2024-04-15 12:30:18 浏览: 89
基于Spring Boot开发实现定时任务的几种方式有:@Scheduled注解、使用Cron表式、使用Quartz框架。
1. 使用@Scheduled注解:
```java
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTasks {
@Scheduled(fixedRate = 1000) // 每隔1秒执行一次
public void task1() {
// 执行任务内容
}
@Scheduled(cron = "0 0 12 * * ?") // 每天中午12点执行
public void task2() {
// 执行任务内容
}
}
```
2. 使用Cron表达式:
```java
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTasks {
@Scheduled(cron = "0/5 * * * * ?") // 每隔5秒执行一次
public void task1() {
// 执行任务内容
}
@Scheduled(cron = "0 0 12 * * ?") // 每天中午12点执行
public void task2() {
// 执行任务内容
}
}
```
3. 使用Quartz框架:
首先,需要添加Quartz的依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
```
然后,创建定时任务类:
```java
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class MyJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
// 执行任务内容
}
}
```
最后,在配置类中配置定时任务:
```java
import org.quartz.JobDetail;
import org.quartz.SimpleTrigger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;
@Configuration
public class QuartzConfig {
@Bean
public JobDetailFactoryBean jobDetail() {
JobDetailFactoryBean factory = new JobDetailFactoryBean();
factory.setJobClass(MyJob.class);
factory.setDurability(true);
return factory;
}
@Bean
public SimpleTriggerFactoryBean trigger(JobDetail job) {
SimpleTriggerFactoryBean factory = new SimpleTriggerFactoryBean();
factory.setJobDetail(job);
factory.setRepeatInterval(5000); // 每隔5秒执行一次
return factory;
}
}
```
以上就是基于Spring Boot开发实现定时任务的几种方式的代码示例。
阅读全文