今天完成的任务
讲小课堂
1.背景介绍
场景一:
天猫双11在3分01秒成交额就超过100亿,1小时49秒成交额超过571亿。这种实时统计产品销量的功能怎么实现?
场景二:
热门产品指定时间发售怎么实现?
以上两种场景都可以通过定时任务来实现,分别是按固定频率执行任务、按指定时间执行任务两种。
.png)
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.参考文献
参考二:Spring 集成 QuartZ实例
http://blog.csdn.net/defonds/article/details/49496895
8.更多讨论
遇到的问题
代码演示里有一个动态修改cron表达式的demo,但是这个demo没办法调用service方法(不报错也不输出任何东西)
收获
明天的计划
把定时任务整合到项目中
进度
http://task.ptteng.com/zentao/project-task-405.html
评论