在web开发过程中,经常我们会有这样的需求:定时对数据库进行数据更新、设置任务提醒等等。要实现这样的定时任务,就需要使用listener做定时器,原生实现之前有玩过,过程比较复杂(感兴趣的下伙伴可以去学习一下),自从用了Spring框架之后有更方便的实现,那就是Cron表达式,今天就简单介绍一下Cron表达式在Springboot中的使用方法和它的基本语法。
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:
这里记录一个在线生成Cron表达式的网站http://cron.qqe2.com/
首先需要在启动类出加一个注解,允许解析Cron
@EnableScheduling
然后我们只需要在需要定期执行的方法上加上@Scheduled直接就可以了
例如:
/**
* @Author beifengtz
* @Site www.beifengtz.com
* @Date Created in 23:31 2018/12/10
* @Description:
*/
@Component
public class CronTest {
/**
* 打印测试
* 每隔一秒触发一次
*/
@Scheduled(cron = "0/1 * * * * ? ")
public void testPrint(){
System.out.println("函数被触发了,时间:"+new Date().toString());
}
}
测试结果
函数被触发了,时间:Tue Dec 11 00:23:15 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:16 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:17 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:18 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:19 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:20 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:21 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:22 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:23 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:24 CST 2018
函数被触发了,时间:Tue Dec 11 00:23:25 CST 2018
如果应用到实际项目中,比如定期更新数据、用户定时任务、定期清理垃圾文件等等都可以用到Cron表达式。