Spring4 Scheduling Tasks 计划任务

下面我们来利用Spring4来编写一个Scheduling Tasks 计划任务

你将得到:

使用@Scheduled 注解来实现每5秒打印当前时间的应用。

必需准备:

1.大概15分钟时间。

2.JDK1.8或更高版本

3.Gradle2.3+Maven3.0+(本文示例采用gradle构建)

4.Spring官方提供的STS开发IDE

开始构建:

1.在STS中右键创建一个spring Starter Project。

点击Next 按照图中所选填充值

点击Finish

2.在包com.stalvan中创建类ScheduledTasks代码如下

 

package com.stalvan;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class ScheduledTasks {

    private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);

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

    @Scheduled(fixedRate = 5000)
    public void reportCurrentTime() {
        log.info("The time is now {}", dateFormat.format(new Date()));
    }
}

@Scheduled 注解可以指定需要按计划执行的任务。本例中使用的fixedRate 为周期性执行,数字为执行间隔毫秒数。我们还可以使用fixedDelay这样就是当一次任务执行完毕之后,多少毫秒后开始执行下一次的计划任务。当然我们也可以使用crontab的格式来进行高级指定。@Scheduled(cron=”. . .”)。

3.我们要在对应的SpringBoot入口类设置允许计划任务。通过使用@EnableScheduling来实现。代码如下:

 

package com.stalvan;

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

@SpringBootApplication
@EnableScheduling
public class GsSchedulingTasksApplication {

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

4.启动程序。点击windows→showView→other  选择 Gradle(STS)中的Gradle Tasks

中双击bootRun 即可运行程序。

 

5.脱离IDE启动程序。

我们可以把程序打包成一个可执行的jar文件。打开命令行 切换到工程根目录下 执行命令 gradlew bootRun 就可以启动程序。

我们也可以先打包 再执行。打包命令为 gradlew build 然后执行命令为 java -jar build/libs/gs-scheduling-tasks-0.1.0.jar

至此 搭建完毕。如需下载DEMO程序 链接如下:

gs-scheduling-tasks源码下载