这篇我们来学习如何在spring_boot中启用定时任务。
一,先说明下定时表达式
"0 0 12 * * ?" 每天中午十二点触发
"0 15 10 ? * *" 每天早上10:15触发
"0 15 10 * * ?" 每天早上10:15触发
"0 15 10 * * ? *" 每天早上10:15触发
"0 15 10 * * ? 2005" 2005年的每天早上10:15触发
“0 * 14 * * ?" 每天从下午2点开始到2点59分每分钟一次触发
"0 0/5 14 * * ?" 每天从下午2点开始到2:55分结束每5分钟一次触发
"0 0/5 14,18 * * ?" 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
"0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发
"0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发
"0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五的10:15触发
二,新建定时任务
package com.example.scheduler;
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 SchedulerTask {
Logger logger = LoggerFactory.getLogger(this.getClass());
private int count = 0;
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
/**
* 每秒钟执行一次
*/
@Scheduled(cron = "*/1 * * * * ?")
private void process() {
logger.info("======================= this is scheduler task runing " + (count++));
}
/**
* 每5秒执行一次
*/
@Scheduled(fixedRate = 1000*5)
public void reportCurrentTime() {
logger.info("======================= 当前时间:" + dateFormat.format(new Date()));
}
}
启动服务,查看控制台:
2017-04-14 21:22:14.213 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= 当前时间:21:22:14
2017-04-14 21:22:14.307 INFO 1708 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8088 (http)
2017-04-14 21:22:14.310 DEBUG 1708 --- [ main] o.s.w.c.s.StandardServletEnvironment : Adding [server.ports] PropertySource with highest search precedence
2017-04-14 21:22:14.318 INFO 1708 --- [ main] com.example.DemoApplication : Started DemoApplication in 11.796 seconds (JVM running for 12.361)
2017-04-14 21:22:15.002 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 0
2017-04-14 21:22:16.001 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 1
2017-04-14 21:22:17.001 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 2
2017-04-14 21:22:18.001 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 3
2017-04-14 21:22:19.002 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 4
2017-04-14 21:22:19.203 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= 当前时间:21:22:19
2017-04-14 21:22:20.001 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 5
2017-04-14 21:22:21.001 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 6
2017-04-14 21:22:22.001 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 7
2017-04-14 21:22:23.001 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 8
2017-04-14 21:22:24.001 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= this is scheduler task runing 9
2017-04-14 21:22:24.204 INFO 1708 --- [pool-2-thread-1] com.example.scheduler.SchedulerTask : ======================= 当前时间:21:22:24
一个简单的定时任务就完成了。
==================================================================================================
由于最近的项目需要配合写前端页面,趁热打铁,接下来想总结一下前端相关知识,下个系列预定为java_web 学习记录
关于spring_boot还有很多需要学习的知识点,这里只是暂时告一段落,
大家可以移步博客继续学习:http://412887952-qq-com.iteye.com/category/356333
最后提供SpringBoot 学习系列源码供大家参考:https://pan.baidu.com/s/1nuRHQw5