91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在spring項目中如何使用taskScheduler定時任務

發布時間:2020-11-09 17:42:22 來源:億速云 閱讀:538 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關在spring項目中如何使用taskScheduler定時任務,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

前言

眾所周知在spring 3.0版本后,自帶了一個定時任務工具,而且使用簡單方便,不用配置文件,可以動態改變執行狀態。也可以使用cron表達式設置定時任務。

被執行的類要實現Runnable接口

TaskScheduler接口

TaskScheduler是一個接口,TaskScheduler接口下定義了6個方法

在spring項目中如何使用taskScheduler定時任務

1、schedule(Runnable task, Trigger trigger);

指定一個觸發器執行定時任務。可以使用CronTrigger來指定Cron表達式,執行定時任務

 CronTrigger t = new CronTrigger("0 0 10,14,16 * * ?");
 taskScheduler.schedule(this, t);

2、schedule(Runnable task, Date startTime);

指定一個具體時間點執行定時任務,可以動態的指定時間,開啟任務。只執行一次。(比Timer好用多了。早發現這接口就好了。。。)

3、scheduleAtFixedRate(Runnable task, long period);

立即執行,循環任務,指定一個執行周期(毫秒計時)

PS:不管上一個周期是否執行完,到時間下個周期就開始執行

4、scheduleAtFixedRate(Runnable task, Date startTime, long period);

指定時間開始執行,循環任務,指定一個間隔周期(毫秒計時)

PS:不管上一個周期是否執行完,到時間下個周期就開始執行

5、scheduleWithFixedDelay(Runnable task, long delay);

立即執行,循環任務,指定一個間隔周期(毫秒計時)

PS:上一個周期執行完,等待delay時間,下個周期開始執行

6、scheduleWithFixedDelay(Runnable task, Date startTime, long delay);

指定時間開始執行,循環任務,指定一個間隔周期(毫秒計時)

PS:上一個周期執行完,等待delay時間,下個周期開始執行

TaskScheduler下有五個實現類

在spring項目中如何使用taskScheduler定時任務

1、ConcurrentTaskScheduler

以當前線程執行任務。如果任務簡單,可以直接使用這個類來執行。快捷方便。

PS:這是單線程運行

public class LocTest implements Runnable {
 private ConcurrentTaskScheduler tpts = new ConcurrentTaskScheduler();
 private void start() {
tpts.schedule(this, new Date());
 }
 public void run() {
Thread ct = Thread.currentThread();
System.out.println("current id:"+ct.getId());
System.out.println("current name:"+ct.getName());
 }
 public static void main(String[] args) {
new LocTest().start();
 }
}

2、DefaultManagedTaskScheduler

以當前線程執行任務,這是ConcurrentTaskScheduler的子類,添加了JNDI的支持。和ConcurrentTaskScheduler一樣的用法,需要使用JNDI可以單獨設置

3、ThreadPoolTaskScheduler

TaskScheduler接口的默認實現類,多線程定時任務執行。可以設置執行線程池數(默認一個線程)。

PS:

  1. 使用前必須得先調用initialize() 【初始化方法】
     
  2. shutDown()方法,執行完后可以關閉線程
public class LocTest implements Runnable {
private ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
private void start() {
taskScheduler.setPoolSize(10);
//必須得先初始化,才能使用
taskScheduler.initialize();
taskScheduler.schedule(this, new Date());
}
public void run() {
Thread ct = Thread.currentThread();
System.out.println("current id:"+ct.getId());
System.out.println("current name:"+ct.getName());
}
public static void main(String[] args) {
new LocTest().start();
}
}

4、TimerManagerTaskScheduler

這個沒有使用到,就沒具體了解,有時間再補充。有了解的歡迎來補充。

以上就是在spring項目中如何使用taskScheduler定時任務,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上虞市| 普格县| 嘉兴市| 麟游县| 台东市| 克什克腾旗| 北京市| 本溪市| 隆昌县| 通化县| 祁连县| 丹江口市| 大安市| 乐业县| 山西省| 定安县| 镶黄旗| 石狮市| 中方县| 凤庆县| 高台县| 张家川| 孟州市| 垫江县| 自贡市| 无为县| 准格尔旗| 农安县| 五台县| 和龙市| 海晏县| 海南省| 黑山县| 曲松县| 鱼台县| 卢湾区| 页游| 光泽县| 高雄县| 辉县市| 平凉市|