springboot07、task定时任务
springboot07、task定时任务
定时任务的概述
在项目中开发定时任务应该是一种比较常见的需求,在Java中开发定时任务主要有三种方案:一是使用JDK自带的Timer,二是使用第三方组件Quartz',三是使用Spring Task。
Timer是JDK自带的定时任务工具,其简单易用,但是对于复杂的定时规则无法满足,在实际项目开发中也很少使用到,Quartz功能强大,但是使用起来相对笨重,而Spring Task则具备了前两者之间的优点,使用起来简单,除Spring 相关的包外不需要额外的包,而且支持注解和配置文件两种形式。
所以咱们这里使用springboot的task,相对方便、快捷、高效。
1、启动类上添加@EnableScheduling
2、创建测试包【com.item.task】
2.1fixedRate定时
2.2cron定时
Cron表达式
cronExpression表达式有至少6个由空格分隔的时间元素,从左往右,这些元素的定义如下:
秒,分,时,月份中的日期,月份,星期,年份
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /* 表示所有值;
? 表示未说明的值,即不关心它为何值;
- 表示一个指定的范围;
, 表示附加一个可能值;
/ 符号前表示开始时间,符号后表示每次递增的值;
常用定时:
每隔5秒执行一次任务: "*/5 * * * * ?"
每隔1分钟执行一次任务: "0 */1 * * * ?"
每天23点执行一次任务: "0 0 23 * * ?"
每天凌晨1点执行一次任务: "0 0 1 * * ?"
每月1号凌晨1点执行一次任务: "0 0 1 1 * ?"
每月1号凌晨2点执行一次任务: "0 0 2 1 * ? *"
每月最后一天23点执行一次任务: "0 0 23 L * ?"
每周星期天凌晨1点执行一次任务: "0 0 1 ? * L"
效果:
- 点赞
- 收藏
- 关注作者
评论(0)