定时任务Sceduled的使用

Spring的定时任务

@Sceduled

标注在方法上,定时执行这个方法

// 在springboot启动类上配置
@EnableScheduling     // 开启定时功能

@Scheduled标注在方法上,设置定时时间

使用条件:

  1. 注解所在的类必须是注册在spring 容器中的组件
  2. 需要使用注解开启定时功能的支持
  3. 目前只测试了在web项目中使用

每过两秒执行一次的实例:

@Component
public class TimeService {
    private int num = 0;

    // 定时执行,参数:cron表达式
    @Scheduled(cron = "0/2 * * * * ?")
    public void count(){
        num++;
        System.out.println("执行了: "+num+" 次");
    }
}

@Async

用于:告诉speing这是一个异步方法,SpringBoot就会自己开一个线程池,进行调用!

// 在springboot启动类上配置
@EnableAsync // 开启异步注解共功能

cron 中,还有一些特殊的符号,含义如下:

  1. (*)星号:可以理解为每的意思,每秒、每分、每天、每月、每年……。
  2. (?)问号:问号只能出现在日期和星期这两个位置,表示这个位置的值不确定,每天 3 点执行,所以第六位星期的位置是不需要关注的,就是不确定的值。同时,日期和星期是两个相互排斥的元素,通过问号来表明不指定值。假如 1 月 10 日是星期一,如果在星期的位置是另指定星期二,就前后冲突矛盾了。
  3. (-)减号:表达一个范围,如在小时字段中使用“10-12”,则表示从 10~12 点,即 10、11、12。
  4. (,)逗号:表达一个列表值,如在星期字段中使用“1、2、4”,则表示星期一、星期二、星期四。
  5. (/)斜杠:如 x/y,x 是开始值,y 是步长,比如在第一位(秒) 0/15 就是,从 0 秒开始,每 15 秒,最后就是 0、15、30、45、60,另 */y,等同于 0/y。
上一篇:vue3+ts使用js插件


下一篇:golang中的cron定时任务详解