您的位置:首页 > 编程语言 > Java开发

使用Spring Boot构建任务计划与cron表达式编写

2017-04-27 00:00 537 查看

1、引入Maven依赖

只需要引入Spring boot starter依赖即可:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>


2、构建入口,并用@EnableScheduling开启任务计划

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

@EnableScheduling开启后台的任务执行器。

3、使用@Scheduled注解标注需要定时执行的方法

@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()));
}
}

只需要把类注册到Spring Bean里,然后用@Scheduled对需要定时执行的方法进行标注,启动Spring Boot项目后,任务就会自动在后台启动并运行。

这样就可以快速便捷地实现任务计划!非常的简洁方便使用。

需要注意的是:

使用@Scheduled标注的方法不能有参数,也不能有返回值

@Scheduled注解可用的参数说明:

fixedRate:指定方法两次调用之间的间隔时间,单位为毫秒

fixedDelay:指定方法前一次执行结束后一次开始执行之间的间隔时间,单位为毫秒

initialDelay:可以和其他参数搭配使用,指定程序启动第一次调用之间的间隔

cron:使用cron表达式进行复杂的时间设置

cron表达式说明:

cron表达式一般从左到右秒、分钟、小时、日期、月份、星期、年排列,其中除了年以外都是必须字段

*:*代表“每个”,比如如果在第二个位置,即分钟所在的位置,使用*,就代表“每分钟”

?:?代表“没有意义”,比如设定的时间中,秒没有用处,就可以在第一个位置用?

-:-代表范围,比如在小时字段中使用10-12,代表从10点到12点每小时

,:,代表一个列表值,穷举时间,比如在秒字段,0,15,20,30代表在0、15、20、30秒时执行

/:x/y代表一个初始值为x,步长为y的等差序列。比如在分钟字段,0/15代表0,15,30,45

当然如果实在不想写的话,可以通过http://cron.qqe2.com/网站自动生成cron表达式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring Boot CRON