tags: 定时任务调度, title: Java定时任务调度工具
为什么要使用定时任务调度工具?
在最近的开发中,想开发一个“个人备忘录”的功能,实际上就是用户在指定某个时间点后,就在那个时间点发送邮件提醒用户去做xxx事。
既然是这样的一个功能,我就想到了定时任务调度...
之前跟着视频做的项目也用到了定时任务调度工具:Quartz。当时记录的博文在这:zhongfucheng.bitcron.com/post/javaee…
显然的,只是简单的使用了一下Quartz,并不能完成我所说的功能。后来我又记得在慕课网上有相关的Quartz教程。
于是我就去学习了一番,视频教程:www.imooc.com/learn/841和www.imooc.com/learn/846
学习记录
把慕课网的视频也都看完了,现在做一个学习的记录....
Timer
首先,得知道:为什么有JDK的Timer定时任务调度工具,还需要用到Quartz??
- Timer仅有一个线程来进行调度我们的任务,对于并发性而言,它是无法处理的!
- 如果使用Timer时抛出了异常,那么我们设置的任务将全部作废
当然了, 如果仅仅是简单使用任务调度工具、并没有什么并发性的话,那么Timer是可以完成任务的。
在视频中还介绍了Timer的一些API说明:
- schedule和scheduleAtFirstRate的对比:
可以总结出:scheduleAtFirstRate是有一定的并发性而言的(相对来说)
Quartz
Quartz的三大要素:
- 任务
- 触发器
- 调度器
针对三大要素相关API说明:
任务:需要做怎么样的事情
- 可以通过Map来传递所需要的参数!
Trigger:该任务何时被触发
- 简单的触发器
- 复杂的触发器
Schedule:
如果对Cron表达式不是特别清楚,还可以在网上生成!
Quartz与Sprping整合:
Spirng环境下使用Quartz时读取的配置文件:
源码:img.mukewang.com/down/5950ca…
如果您觉得这篇文章帮助到了您,可以给作者一点鼓励