欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

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

創(chuàng)新互聯(lián)長期為千余家客戶提供的網(wǎng)站建設(shè)服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為浚縣企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計浚縣網(wǎng)站改版等技術(shù)服務。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

前言

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

被執(zhí)行的類要實現(xiàn)Runnable接口

TaskScheduler接口

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

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

1、schedule(Runnable task, Trigger trigger);

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

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

2、schedule(Runnable task, Date startTime);

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

3、scheduleAtFixedRate(Runnable task, long period);

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

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

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

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

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

5、scheduleWithFixedDelay(Runnable task, long delay);

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

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

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

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

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

TaskScheduler下有五個實現(xiàn)類

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

1、ConcurrentTaskScheduler

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

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

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

3、ThreadPoolTaskScheduler

TaskScheduler接口的默認實現(xiàn)類,多線程定時任務執(zhí)行。可以設(shè)置執(zhí)行線程池數(shù)(默認一個線程)。

PS:

  1. 使用前必須得先調(diào)用initialize() 【初始化方法】
     
  2. shutDown()方法,執(zhí)行完后可以關(guān)閉線程
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定時任務,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁題目:在spring項目中如何使用taskScheduler定時任務
文章位置:http://www.chinadenli.net/article4/gcceoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊品牌網(wǎng)站設(shè)計網(wǎng)站導航外貿(mào)網(wǎng)站建設(shè)網(wǎng)頁設(shè)計公司定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)