SpringBoot 定时任务之@Scheduled cron表达式

在Spring Boot中,@Scheduled注解配合Cron表达式可以用来定义定时任务。

Cron表达式是一种灵活的时间表达方式,通常用于配置任务的执行周期。

以下是一些关键点和示例:

1. 开启定时任务支持

        要在Spring Boot应用中使用定时任务,首先需要在配置类上添加@EnableScheduling注解。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

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

2. 使用@Scheduled和Cron表达式

        在需要执行定时任务的方法上添加@Scheduled注解,并通过cron属性指定Cron表达式。

        Cron表达式的格式:

                Cron表达式由六个或七个字段组成,从左至右分别代表:

                        秒(0-59)

                        分钟(0-59)

                        小时(0-23)

                        日(1-31)

                        月(1-12)

                        星期(0-6,其中0和7都是星期天)

                        年(可选,留空则表示任何年份)
                示例:
                        假设想要每天凌晨2点执行一个任务,Cron表达式可以这样写:

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

@Component
public class MyTask {

    @Scheduled(cron = "0 2 * * *")
    public void run() {
        System.out.println("Task executed at: " + new Date());
    }
}

        更复杂的Cron表达式

                Cron表达式还支持一些特殊字符,如*(任意值)、?(不指定)、-(范围)、,(列表)、/(步长)等。

                例如,每周一到周五的上午9点执行任务:

@Scheduled(cron = "0 9 ? * MON-FRI")
public void workDayTask() {
    // 业务逻辑
}

3. 注意事项

        Cron表达式的解析依赖于运行环境的时区设置,确保你的应用服务器时区设置正确。

        测试Cron表达式是否正确,可以使用在线Cron表达式解析工具或调试程序中的定时任务。

相关推荐

  1. SpringBoot 定时任务@Scheduled cron表达式

    2024-07-12 03:08:07       17 阅读
  2. springboot异步任务、邮件任务定时任务

    2024-07-12 03:08:07       32 阅读
  3. 3分钟搞定springboot 定时任务cron表达式

    2024-07-12 03:08:07       55 阅读
  4. springboot项目开启简单定时任务

    2024-07-12 03:08:07       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 03:08:07       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 03:08:07       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 03:08:07       58 阅读
  4. Python语言-面向对象

    2024-07-12 03:08:07       69 阅读

热门阅读

  1. C/C++开发,IniFile源码下载

    2024-07-12 03:08:07       19 阅读
  2. jQuery Mobile 安装指南

    2024-07-12 03:08:07       25 阅读
  3. centos ssh一键升级到9.8版本脚本

    2024-07-12 03:08:07       19 阅读
  4. Kotlin 中 is 关键字的作用与智能类型转换

    2024-07-12 03:08:07       21 阅读
  5. Promise

    2024-07-12 03:08:07       16 阅读
  6. asp .net core 避免请求body数据量过大

    2024-07-12 03:08:07       20 阅读
  7. 社交媒体数据分析:赋能企业营销策略的利器

    2024-07-12 03:08:07       19 阅读
  8. SpringSecurity中文文档(Servlet OAuth2)

    2024-07-12 03:08:07       24 阅读
  9. Docker核心知识手册

    2024-07-12 03:08:07       22 阅读
  10. Linux——测网速例子,在网站查看生成的图片

    2024-07-12 03:08:07       27 阅读
  11. 华为od-C卷200分题目6 - 5G 网络建设

    2024-07-12 03:08:07       22 阅读