spring boot 使用@Scheduled注解

/ Java / 没有评论 / 931浏览

最近项目中用到定时任务,所以需要在spring boot项目中集成定时任务。整体来说非常简单,以下详细说明。

一、在Application启动类上添加@EnableScheduling注解启动定时。

package com.example.task;

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

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

二、使用@Component和@Scheduled(cron="0/5 * * * * ?")启动定时任务。

package com.example.task.timing;

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

@Component
public class TimingTask {
  /**
   *  每五秒执行一次
   */
  @Scheduled(cron="0/5 * * * * ?")
  public void executeFileDownLoadTask() {
    System.out.println("定时任务启动");
  }
}

OK,完成可以启动定时任务了,是不是很简单。

源码地址 https://gitee.com/liuzhan5/task.git

以下说说cron七域表达式(第七域年可不填)

一、cron表达式从左到右(用空格隔开)

秒 分 小时 日期 月份 星期 年份

二、常用的表达式

三、特殊字符

四、允许值

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