SpringBoot中使用中使用@Scheduled注解创建定时任务的实现注解创建定时任务的实现
主要介绍了SpringBoot中使用@Scheduled注解创建定时任务的实现,文中通过示例代码介绍的非常详细,对大
家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在项目日常开发过程中,经常需要定时任务来帮我们做一些工作,如清理日志。定时任务的实现方法主要有 Timer、Quartz
以及 elastic-job
Timer 实现定时任务实现定时任务
只执行一次的定时任务
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("2000毫米后执行一次。");
}
}, 2000);
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("5000毫米后执行一次。");
}
}, new Date(System.currentTimeMillis() + 5000));
循环执行任务
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(111);
}
}, 1000, 2000); // 1000毫米后执行第一次,之后每2000毫米执行一次
终止任务
timer.concel();
Timer 是 JDK 实现的定时任务,用起来简单、方便,对一些简单的定时任务可以使用它。由于它不支持 cron 表达式,现在已
经很少用了。
Quartz 实现定时任务实现定时任务
Quartz 是一个完全由 Java 编写的开源作业调度框架,可以用它来实现定时任务。
在 pom.xml 文件添加 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>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.6</version>
</dependency>
编写 Job
定时执行的任务