Scheduled任务的cron表达式

712 阅读2分钟

当使用Java的Scheduled任务调度框架(例如Spring的@Scheduled注解)时,cron表达式是一种强大的方式来配置任务的定时执行时间。对于新手来说,以下是一些常见的cron表达式示例,以及它们的用途:

  1. 每天的特定时间执行任务

    • 0 0 12 * * ?:每天中午12点执行任务。
  2. 每小时执行任务

    • 0 0 */1 * * ?:每个小时整点执行任务。
  3. 每隔5分钟执行任务

    • 0 0/5 * * * ?:每隔5分钟执行任务。
  4. 每周特定时间执行任务

    • 0 0 8 ? * MON:每周一早上8点执行任务。
  5. 每月特定日期和时间执行任务

    • 0 30 9 15 * ?:每月15号上午9:30执行任务。
  6. 每个季度的第一个月的第一个周一执行任务

    • 0 0 0 ? 1/3 MON#1:每个季度的第一个月的第一个周一执行任务。
  7. 每年特定日期和时间执行任务

    • 0 0 12 25 12 ?:每年圣诞节(12月25日)中午12点执行任务。
  8. 每周末执行任务

    • 0 0 * * SAT,SUN:每周六和周日执行任务。
  9. 工作日每隔2小时执行任务

    • 0 0 0/2 ? * MON-FRI:工作日每隔2小时执行任务。
  10. 每月最后一天执行任务

    • 0 0 12 L * ?:每个月最后一天中午12点执行任务。

cron的表达式可以在百度上搜Cron在线表达式生成器,根据自己需求获取自己需要的表达式

cron表达式在springboot工程中的应用

在springboot的主类上,加上注解@EnableScheduling

@SpringBootApplication
@EnableScheduling
public class MhApplication {

    public static void main(String[] args) {
        SpringApplication.run(MhApplication.class, args);
    }

}

cron的定时任务测试组件类(建议一个定时任务创建一个类)

package com.lx.component.task;

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


@Component
public class ScheduleTask {

    //cron表达式:每隔5秒执行一次
    @Scheduled(cron = "0/5 * * * * *")
    public void scheduled(){
        //业务逻辑处理
    }

}