兵兵有你

人品好,气质差.丢了工作就回家...

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.首页在启动文件里开启定时任务注解

  @EnableScheduling

2.编写好定时任务类

import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

import java.time.LocalDateTime;

/**
 * @author 兵兵有你
 * @date 2021/10/11 0011 10:48
 * @Email 1360968945@qq.com
 */
@Configuration
@EnableScheduling  //开启定时任务
//@EnableAsync      //异步执行
public class StaticScheduleTask {


    //@Scheduled(cron = "0/5 * * * * ?") //执行方式1-每5秒1次
    //@Async   //异步执行
    @Scheduled(fixedRate = 5000) //执行方式2 -每5秒一次
    public void configureTasks(){
            System.out.println(Thread.currentThread()+"执行任务的时间是"+ LocalDateTime.now());


    }
}

如果开启了异步执行,每次定时任务都会开启一个新线程

 

按顺序依次是:秒、分、时、日、月、周,中间用空格间隔
月、周可以用数字或英文单词的前三个字母表示
日和周可能会冲突,因此两个可以有一个配置为?
常用通配符的含义:
表示任意值,例如在秒字段上设置,表示每秒都触发
?表示不指定值,只能出现在日或者周的位置,用于处理日和周可能存在的冲突,例如2020年8月15是周六,如果又在周的位置上指定为周一,那就会产生冲突到导致定时任务失效。如果我们不关心日或者周的时候,也可以将其设置为?
-表示时间区间,例如在秒上设置1-3,表示第1、2、3秒都会触发
/表示时间间隔,例如在秒上设置2/4,表示从第2秒开始每间隔4秒触发一次
,表示列举多个值,例如MON,WED,FRI表示周一、周三、周五触发
例如:

每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

 

posted on 2021-10-14 09:41  greatbing  阅读(50)  评论(0编辑  收藏  举报