定时任务在我们项目开发中也是很重要的,对于某些场景必须要用定时任务 ,如定时发送邮件啊,定时统计数据等,这篇文章主要讲讲项目中实现定时任务的几种方式。
一、基于注解
这种方式很简单,主要就是先@EnableScheduling开启定时任务功能,然后在相应的方法上添加@Scheduled()中间写上相应的cron表达式即可。示例如下:
schedule.ScheduleTask:
java复制代码import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component
@EnableScheduling //开启定时任务
public class ScheduleTask {
@Scheduled(cron = "0/5 * * * * ?") //定时任务注解+cron表达式
public void testScheduleTask() {
System.out.println("执行定时任务" + LocalDateTime.now());
}
}
Cron表达式参数参考:
- 秒(0~59) 例如0/5表示每5秒
- 分(0~59)
- 时(0~23)
- 日(0~31)的某天,需计算
- 月(0~11)
- 周几( 可填1-7 或 SUN/MON/TUE/WED/THU/FRI/SAT)
建议:直接在线生成Cron表达式比较方便:www.matools.com/cron/
@Scheduled:除了支持灵活的参数表达式cron之外,还支持 fixedDelay,fixedRate,initialDelay 这些延时性的操作。