概述
-
pom.xml 引入 springboot 相关依赖
-
入口类加 @EnableScheduling注解(有些版本不加该注解也会执行定时任务。请注意:有些版本即使注释掉该注解,也会执行定时任务)
@SpringBootApplication
@EnableScheduling
public class XXXApplication {
}
- 建立AsyncTaskConfig类(配置多线程异步任务)
@Configuration
@EnableAsync
public class AsyncTaskConfig {
@Bean
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setKeepAliveSeconds(1800);
executor.setMaxPoolSize(1000);
executor.setQueueCapacity(500);
executor.initialize();
return executor;
}
}
- 建立具体的任务类
@Component
public class MyTask {
// @Async 表示使用异步
// @Scheduled:initialDelay:启动时延迟 1 秒执行,fixedRate:3秒执行一次
@Async
@Scheduled(initialDelay = 1000, fixedRate = 3000)
public void doing() {
System.out.println("3秒一次");
}
// @Async 表示使用异步
// @Scheduled:cron :每6秒执行一次。周期:秒 分 时 日 月 周
@Async
@Scheduled(initialDelay = 1000, cron = "*/6 * * * * *")
public void doing2() {
System.out.println("6秒一次");
}
}
cron 表达式详解
cron表达式时间依次表示:秒 分 时 日 月 周
* 表示该时间段的所有时间。日和周可以用 ? 代替 *
┌───────────── second (0-59)
│ ┌───────────── minute (0 - 59)
│ │ ┌───────────── hour (0 - 23)
│ │ │ ┌───────────── day of the month (1 - 31)
│ │ │ │ ┌───────────── month (1 - 12) (or JAN-DEC)
│ │ │ │ │ ┌───────────── day of the week (0 - 7)
│ │ │ │ │ │ (0 or 7 is Sunday, or MON-SUN)
│ │ │ │ │ │
* * * * * *
举一些例子:
"0 0 * * * *" = 每小时 0 分 0 秒
"*/10 * * * * *" = 每 10 秒
"0 0 8-10 * * *" = 每天的 8,9,10点
"0 0 6,19 * * *" = 每天的 6-19 点
"0 0/30 8-10 * * *" = 每天的 8:00, 8:30, 9:00, 9:30, 10:00, 10:30
"0 0 9-17 * * MON-FRI" = 周一到周五的 9-17 点
"0 0 0 25 12 ?" = 每个圣诞节的午夜
"0 0 0 L * *" = 每月最后一天午夜
"0 0 0 L-3 * *" = 每月第三至最后一天午夜
"0 0 0 1W * *" = 每月第一个工作日午夜
"0 0 0 LW * *" = 每月最后一个工作日午夜
"0 0 0 * * 5L" = 每月最后一个星期五午夜
"0 0 0 * * THUL" = 每月最后一个星期四午夜
"0 0 0 ? * 5#2" = 每月的第二个星期五午夜
"0 0 0 ? * MON#1" = 每月的第一个星期一午夜
对于复杂时间段,建议大的时间段用 cron 写,细节的时间段在代码里判断。
参考:http://www.fengyunxiao.cn
最后
以上就是繁荣康乃馨为你收集整理的springboot2 定时任务:同步 异步 多线程 延迟执行,cron详解的全部内容,希望文章能够帮你解决springboot2 定时任务:同步 异步 多线程 延迟执行,cron详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复