Timer
: JDK自带的java.util.Timer
;通过调度java.util.TimerTask
的方式 让程序按照某一个频度执行,但不能在指定时间运行。 一般用的较少。
ScheduledExecutorService
: JDK1.5
新增的,位于java.util.concurrent
包中;是基于线程池设计的定时任务类,每个调度任务都会被分配到线程池中,并发执行,互不影响。
Spring Task
: Spring3.0
以后新增了task,一个轻量级的Quartz,功能够用,用法简单。
Quartz
: 功能最为强大的调度器,可以让程序在指定时间执行,也可以按照某一个频度执行,它还可以动态开关,但是配置起来比较复杂。现如今开源社区中已经很多基于Quartz 实现的分布式定时任务项目(xxl-job
、elastic-job
)。