大家好,我是IT修真院深圳分院第03期学员,一枚正直纯洁善良的程序员。今天给大家分享一下,修真院官网JAVA(职业)深度思考的扩展题目—— 定时任务
1.背景介绍
场景一:
天猫双11在3分01秒成交额就超过100亿,1小时49秒成交额超过571亿。这种实时统计产品销量的功能怎么实现?
场景二:
热门产品指定时间发售怎么实现?
以上两种场景都可以通过定时任务来实现,分别是按固定频率执行任务、按指定时间执行任务两种。
2.知识剖析
1.QuartZ的组成
2.cron表达式
结构:
Cron表达式由7个部分组成,各部分用空格隔开,例如
0 0 12 ? * WED(每星期三下午12:00 执行)
Cron表达式的7个部分从左到右代表的含义如下
Seconds Minutes Hours Day-of-Month Month Day-of-Week Year
其中Year是可选的
各部分可选值:
练习:
1)*/5 * * * * ?
2)0 */1 * * * ?
3)0 0 23 * * ?
4)0 0 1 ? * *
5)0 0 1 1 * ?
6)0 26,29,33 * * * ?
答案:
1)*/5 * * * * ? 每隔5秒执行一次
2)0 */1 * * * ? 每隔1分钟执行一次
3)0 0 23 * * ? 每天23点执行一次
4)0 0 1 ? * 1 每周日凌晨1点执行一次
5)0 0 1 1 * ? 每月1号凌晨1点执行一次
6)0 26,29,33 * * * ? 在26分、29分、33分执行一次
3.常见问题
Spring 如何整合 QuartZ?
4.解决方案
1)依赖:
spring-context-support.jar
spring-tx.jar
quartz.jar
注意:Spring 和 QuartZ 版本匹配问题
2)普通java类
配置JobDetail、Trigger 、Scheduler
5.代码实战
6.拓展思考
如何动态的修改一个定时任务的cron表达式?
7.参考文献
参考一:QuartZ Cron表达式详解http://www.jianshu.com/p/f03b1497122a
参考二:Spring 集成 QuartZ实例
http://blog.csdn.net/defonds/article/details/49496895
8.更多讨论
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧。