但行好事  莫问前程

Spring4.x高级话题(三):计划任务Schedule

一. 点睛

Spring3.1开始,计划任务在Spring中的实现变得异常的简单。首先通过在配置类注解@EnableScheduling来开启计划任务的支持,然后在要执行计划任务的方法上注解@Scheduled来声明这是一个计划任务。

Spring通过@Scheduled支持多种类型的计划任务,包含cron,fixDelay,fixRate等。

二. 示例

1. 计划任务执行类

package org.light4j.sping4.senior.taskscheduler;

import java.text.SimpleDateFormat;
import java.util.Date;

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

@Service
public class ScheduledTaskService {

      private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

      @Scheduled(fixedRate = 5000) //①
      public void reportCurrentTime() {
           System.out.println("每隔五秒执行一次 " + dateFormat.format(new Date()));
       }

      @Scheduled(cron = "0 28 11 ? * *"  ) //②
      public void fixTimeExecution(){
          System.out.println("在指定时间 " + dateFormat.format(new Date())+"执行");
      }
}

代码解释:

① 通过@Scheduled声明该方法是计划任务,使用fixedRate属性每隔固定时间执行。
② 使用cron属性可按照指定时间执行,本例指的是每天1128分执行;cronUNIX和类UNIX(Linux)系统下的定时任务。

2. 配置类

package org.light4j.sping4.senior.taskscheduler;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;

@Configuration
@ComponentScan("org.light4j.sping4.senior.taskscheduler")
@EnableScheduling //①
public class TaskSchedulerConfig {

}

代码解释:

① 通过@EnableScheduling注解开启对计划任务的支持。

3. 运行

package org.light4j.sping4.senior.taskscheduler;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
    public static void main(String[] args) {
         AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TaskSchedulerConfig.class);
    }
}

运行结果如下图所示:
schedule

4. 源代码示例:

github地址:点击查看
码云地址:点击查看

打赏
欢迎关注人生设计师的微信公众账号
公众号ID:longjiazuoA

未经允许不得转载:人生设计师 » Spring4.x高级话题(三):计划任务Schedule

分享到:更多 ()

人生设计师-接受不同的声音

联系我关于我