SpringBoot中如何配置并实现定时任务调度?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2594个文字,预计阅读时间需要11分钟。
前言:在JAVA开发领域,目前可以通过以下几种方式实现定时任务:
1. Timer:JDK自带的一个定时调度类,可以简单地实现按一定频率执行任务。
提供的功能比较单一,无法实现复杂的调度。
前言
在JAVA开发领域,目前可以通过以下几种方式进行定时任务:
- Timer:jdk中自带的一个定时调度类,可以简单的实现按某一频度进行任务执行。提供的功能比较单一,无法实现复杂的调度任务。
- ScheduledExecutorService:也是jdk自带的一个基于线程池设计的定时任务类。其每个调度任务都会分配到线程池中的一个线程执行,所以其任务是并发执行的,互不影响。
- Spring Task:Spring提供的一个任务调度工具,支持注解和配置文件形式,支持Cron表达式,使用简单但功能强大。
- Quartz:一款功能强大的任务调度器,可以实现较为复杂的调度功能,如每月一号执行、每天凌晨执行、每周五执行等等,还支持分布式调度,就是配置稍显复杂。
题外话:对于Quartz,早前用过1.6版本的,更新到2.x及以上版本后基本没怎么接触了,原来还有倒腾过结合Kettle做了一些动态的定时抽取数据啥的还编写过一个Cron表达式编辑器,现在基本忘记了。。等有机会,再次深入学习后再来单独分享一些关于的Quartz心得吧。
基于JDK方式实现简单定时
刚刚有介绍过,基于JDK方式一共有两种:Timer和ScheduledExecutorService。接下来,就简单讲解下这两种方式。
Timer
Timer是jdk提供的java.util.Timer类。
本文共计2594个文字,预计阅读时间需要11分钟。
前言:在JAVA开发领域,目前可以通过以下几种方式实现定时任务:
1. Timer:JDK自带的一个定时调度类,可以简单地实现按一定频率执行任务。
提供的功能比较单一,无法实现复杂的调度。
前言
在JAVA开发领域,目前可以通过以下几种方式进行定时任务:
- Timer:jdk中自带的一个定时调度类,可以简单的实现按某一频度进行任务执行。提供的功能比较单一,无法实现复杂的调度任务。
- ScheduledExecutorService:也是jdk自带的一个基于线程池设计的定时任务类。其每个调度任务都会分配到线程池中的一个线程执行,所以其任务是并发执行的,互不影响。
- Spring Task:Spring提供的一个任务调度工具,支持注解和配置文件形式,支持Cron表达式,使用简单但功能强大。
- Quartz:一款功能强大的任务调度器,可以实现较为复杂的调度功能,如每月一号执行、每天凌晨执行、每周五执行等等,还支持分布式调度,就是配置稍显复杂。
题外话:对于Quartz,早前用过1.6版本的,更新到2.x及以上版本后基本没怎么接触了,原来还有倒腾过结合Kettle做了一些动态的定时抽取数据啥的还编写过一个Cron表达式编辑器,现在基本忘记了。。等有机会,再次深入学习后再来单独分享一些关于的Quartz心得吧。
基于JDK方式实现简单定时
刚刚有介绍过,基于JDK方式一共有两种:Timer和ScheduledExecutorService。接下来,就简单讲解下这两种方式。
Timer
Timer是jdk提供的java.util.Timer类。

