spring task定时任务

TaskExecutor和TaskSchedulerspring

TaskExecutor是spring task的第一个抽象,它很天然让人联想到jdk中concurrent包下的Executor,实际上TaskExecutor就是为区别于Executor才引入的,而引入TaskExecutor的目的就是为定时任务的执行提供线程池的支持,那么,问题来了,为何spring不直接使用jdk自带的Executor呢?TaskExecutor源码以下?线程

public interface TaskExecutor extends Executor {
    void execute(Runnable var1);
}
  •  

那么,答案很显然,TaskExecutor提供的线程池支持也是基于jdk自带的Executor的。用法于Executor没有什么不一样。code

TaskScheduler是spring task的第二个抽象,那么从字面的意义看,TaskScheduler就是为了提供定时任务的支持咯。TaskScheduler须要传入一个Runnable的任务作为参数,并指定须要周期执行的时间或者触发器,这样Runnable任务就能够周期性执行了。传入时间很好理解,有意思的是传入一个触发器(Trigger)的状况,由于这里须要使用cron表达式去触发一个定时任务,因此有必要先了解下cron表达式的使用。源码

在spring 4.x中已经不支持7个参数的cronin表达式了,要求必须是6个参数jdk

相关文章
相关标签/搜索