SpringTask定时任务

Spring Task是Spring框架中的一个定时任务调度模块,它提供了一种简单的方式来实现基于时间的调度任务。

使用Spring Task,可以通过Java代码配置或注解的方式定义定时任务,并设置任务的执行时间、间隔周期、触发条件等。当达到指定的时间或条件时,Spring Task会自动触发任务的执行,可以执行任何有意义的操作,例如数据备份、缓存清理、邮件发送等。

Spring Task还具有以下特点:

1、简单易用:简单的XML或注解配置即可实现定时任务调度。

2、易于集成:与Spring框架集成无缝,支持Spring Boot应用快速启动。

3、可靠性高:支持在分布式环境下进行任务调度,并支持并发控制和异常管理。

4、监控调试:支持日志记录、任务执行状态监控和调试,方便排除问题。

1.入门案例

需求:每5秒在控制台输出一次时间

1、定义一个任务方法,在该方法上使用**@Scheduled**注解,并通常cron属性来指定该方法的执行的时间规则。

@Component
public class OrderStatisticsTask {

    //注解:@Scheduled+cron
    //测试定时任务
    //每隔五秒执行一次
    @Scheduled(cron = "0/5 * * * * ?")
    public void testHello(){
        System.out.println(new Date().toInstant());
    }
}

2、在启动类上添加**@EnableScheduling**注解开启定时任务功能

@EnableScheduling
public class ManagerApplication {

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

}

2.cron表达式

定时任务触发时间的一个字符串表达形式,分为6或7个域,每一个域代表一个含义。

cron的结构从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份
网上搜索cron表达式会有很多生成工具:cron表达式生成器

常用cron表达式:

  • 0 0 2 1 * ? 表示在每月的1日的凌晨2点调整任务
  • 0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业
  • 0 0 12 * * ? 每天中午12点触发
  • 0 15 10 ? * * 每天上午10:15触发

你可能感兴趣的:(java)