在对比几种做法之后,找到了一种较容易的设置定时任务的方式
1.定时任务注解@EnableScheduling
@SpringBootApplication
@EnableScheduling
public class TaskStartApplication {
public static void main(String[] args) {
SpringApplication.run(TaskStartApplication.class, args);
}
}
在启动类增加@EnableScheduling
注解,用于说明可以执行定时任务
2.定时任务类
@Component
public class ScheduleTask {
@Scheduled(cron = "0/10 * * * * ?")
public void executeCorpTask1() {
System.out.println("开始执行任务...");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("任务执行结束...");
}
}
给方法加上@Scheduled(cron = "0/10 * * * * ?")
注解,用于标记该方法的执行频率。
这地方用的是cron表达式,具体说明参见:
5.3 基于spring-task的Job实现
执行结果如下:
设置执行的时间间隔为10秒钟一次,每次开始执行任务后,线程休眠三秒种任务执行结束
源码下载地址
https://github.com/gc1156939681/SpringBootStudy/tree/master/timedtask
参照简书作者:孔垂云
网友评论