SpringBoot/SpringCloudAlibaba(ruoyi)中cron表达式(配置每天指定整点执行)读取配置文件

场景

若依微服务版手把手教你本地搭建环境并运行前后端项目:

若依微服务版手把手教你本地搭建环境并运行前后端项目_霸道流氓气质的博客-CSDN博客

在上面的基础上某业务需要配置cron表达式,该表达式需要指定每天的指定的整点执行,

比如每天6点、12点、18点、24点执行,又或者是每天6点、14点、24点执行的模式。

上面使用的是nacos作为配置中心,但是为了避免nacos持久化的数据库不是公共库,这里没将

cron表达式配置进nacos中,而是将其配置在bootstrap.yml中,仅作为演示。

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主

实现

1、首先在bootstrap.yml中添加配置的cron表达式

fzys:
  nologin:
    scan: "0/10 * * * * ? "

这里的表达式为10秒一次,具体自己配置。

注意这里使用双引号包含。

SpringBoot/SpringCloudAlibaba(ruoyi)中cron表达式(配置每天指定整点执行)读取配置文件_第1张图片

2、然后在定时任务配置表达式的地方引入

import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
@EnableScheduling
public class NoLoginRecordTask {

    @Scheduled(cron = "${fzys.nologin.scan}")
    public void scanNoLoginEachHour() {

    }

}

3、配置cron表达式每天整点执行

可以通过搜索cron表达式在线生成进行配置

SpringBoot/SpringCloudAlibaba(ruoyi)中cron表达式(配置每天指定整点执行)读取配置文件_第2张图片

 

将秒和分都为指定0,然后指定小时

SpringBoot/SpringCloudAlibaba(ruoyi)中cron表达式(配置每天指定整点执行)读取配置文件_第3张图片

 

此时每天指定整点执行就配置好了。

注意某些在线生成cron表达式后运行时会提示:

Cron expression must consist of 6 fields (found 7 in

Spring定时任务-cron只能包含6个字段,即使不支持支持年份

把最后的表示年份的符号去掉即可。

你可能感兴趣的:(架构之路,spring,boot,java,后端)