发表于: 2017-12-15 23:26:12

1 646


今天完成的任务

讲小课堂

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.更多讨论


遇到的问题

代码演示里有一个动态修改cron表达式的demo,但是这个demo没办法调用service方法(不报错也不输出任何东西)


收获


明天的计划

把定时任务整合到项目中


进度

http://task.ptteng.com/zentao/project-task-405.html


返回列表 返回列表
评论

    分享到