SpringBoot整合quartz的一个例子
一、引入依赖
<!--quartz 定时器框架-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
二、写定时任务
package springboot.config;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTask {
/**
* 复杂定时任务,每天17:38分执行一次
*/
@Scheduled(cron = "0 38 17 * * ?")
public void scheduledTask1(){
System.out.println("定时任务1");
}
/**
* 简单定时任务 initialDelay = 10000 意思就是在容器启动后,延迟10秒后再执行一次定时器
* fixedDelay = 1000 * 5 意思是以后每15秒再执行一次该定时器
*/
@Scheduled(initialDelay = 1000 * 10,fixedDelay = 1000 * 5)
public void scheduledTask2(){
System.out.println("任务2执行时间:"+System.currentTimeMillis());
System.out.println("定时任务2");
try {
Thread.sleep(2*1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("任务2结束时间:"+System.currentTimeMillis());
}
@Scheduled(initialDelay = 1000 * 10,fixedRate = 1000 * 5)
public void scheduledTask3(){
System.out.println("任务3执行时间:"+System.currentTimeMillis());
System.out.println("定时任务3");
try {
Thread.sleep(2*1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("任务3结束时间:"+System.currentTimeMillis());
}
}
三、主启动类加上@EnableScheduling注解
package springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class,args);
}
}