定时任务注解

使用 @EnableScheduling注解可以开启springboot的定时任务


我个人比较把该注解标注在指定的配置类中,代码如下:

@Slf4j
@Configuration
@EnableScheduling //开启定时任务
public class ScheduledConfig {

    @Autowired
    BlogService blogService;

    @Scheduled(cron = "0 0 0 1/2 * *") // 每两天的0点备份一次
    public void backups(){
        blogService.backups();
        log.info("md文档备份成功");
    }
}

Cron表达式

{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}

字段 允许值 允许的特殊字符
0-59 , - * /
0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可为空) 留空, 1970-2099 , - * /

以秒为例:

"*" 代表每隔1秒钟触发

"," 代表在指定的秒数触发,比如"0,15,45"代表0秒、15秒和45秒时触发任务

"-" 代表在指定的范围内触发,比如"25-45"代表从25秒开始触发到45秒结束触发,每隔1秒触发1次

"/" 代表触发步进(step),"/"前面的值代表初始值(""等同"0"),后面的值代表偏移量,

"/" 代表触发步进(step),"/"前面的值代表初始值("*"等同"0"),后面的值代表偏移量,
比如"0/20"或者"*/20"代表从0秒钟开始,每隔20秒钟触发1次,即0秒触发1次,20秒触发1次,
40秒触发1次;"5/20"代表5秒触发1次,25秒触发1次,45秒触发1次;"10-45/20"代表在[10,45]
内步进20秒命中的时间点触发,即10秒触发1次,30秒触发1次

具体参考该博客

0条评论
头像
ICP证 : 浙ICP备18021271号