springboot中如何创建定时任务,以及corn表达式规则

首先,需要在主启动类上添加@EnableScheduling注解,开启定时任务相关配置。

@SpringBootApplication
@EnableScheduling
public class Application {
    
     
	public static void main(String[] args) {
    
    
		SpringApplication.run(Application.class, args);
	}
}

然后就是创建定时任务类,注意添加@Component,将对象添加进容器中,并在相关的方法上添加@Scheduled注解,配置相关的表达式,规定定时任务执行的频次

@Component
public class ScheduledTask {
    
     
    @Scheduled(cron="*/30 * * * * *")
    public void taskRun(){
    
    
        System.out.println("执行定时任务" + System.currentTimeMillis());
    }
}

corn表达式相关语法
corn表达式是一个字符串,以5个或6个空格分为6个或七个域,每个域代表含义如下:

  • Seconds Minutes Hours DayofMonth Month DayofWeek
  • Seconds Minutes Hours DayofMonth Month DayofWeek Year
    对应的: 秒 分 小时 月份中的日期 月份 星期中的日期 年份
    在这里插入图片描述
    常用的
    *号 表示匹配该域的任意值;
    ?号 只能用于日期和星期两个域,表示匹配的任意值,但是两者会相互影响;
    -号 表示范围,比如分钟域的3-9表示3分到9分钟每分钟执行一次;
    /号 表示在起始时间触发后,每间隔多久触发一次,这个用的非常多,例如5/20表示5分钟触发后,25,45分别触发一次;
    ,号 表示枚举值,分钟域的10,20表示10分钟和20分钟分别触发一次
    其它符号可以查阅相关文档

常见表达式
0 15 10 * * ? 每天上午10点15分触发
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 10,40 14 ? 3 WED 每年三月的星期三的下午2:10和2:40触发

猜你喜欢

转载自blog.csdn.net/qq_41885819/article/details/109309834