SpringBoot基于注解的定时任务

定时任务
需求:项目开发中对某一任务进行定时操作
Springboot注解开发中实现定时任务的两个注解:@EnableScheduling@Scheduled
cron表达式(定时)
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * / ? L W C
月份 1-12 , - * /
星期 0-7或SUN-SAT,0,7是SUN , - * / ? L C #

特殊字符代表含义:
,:枚举
-:区间
*:任意
/:步长
?:日/星期冲突匹配
L:最后
W:工作日
C:和calendar联系后计算过的值 #:星期,4#2,第2个星期三

cron表达式:六位组成,空格隔开,分别代表second(秒),minute(分),hour(时),day of month(日),month(月),day of week(周几)

举例:
0 0/5 14,18 * * ?每天14点整,和18点整,每隔5分钟执行一次
0 15 10 ? * 1-6每个月的周一至周六10:15分执行一次
0 0 2 ? * 6L每个月的最后一个周六凌晨2点执行一次
0 0 2 LW * ?每个月的最后一个工作日凌晨2点执行一次
0 0 2-4 ? * 1#1每个月的第一个周一凌晨2点到4点期间,每个整点都执行一次

在入口程序上加@EnableScheduling开启基于注解的定时任务

@EnableScheduling//开启基于注解的定时任务
@SpringBootApplication
public class TestApplication {
     public static void main(String[] args) {
      SpringApplication.run(TestApplication.class, args);

   }
}

任务逻辑模块上加@Scheduled注解:

@Service
public class ScheduledService{
    @Scheduled(cron = “0 * * * * MON-SAT”)
    public void hello(){
        //编写项目定时逻辑代码
        System.out.println(“hello......”);
    }
}

你可能感兴趣的:(spingboot)