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

相關文章
相關標籤/搜索