成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Spring內(nèi)置定時任務調(diào)度@Scheduled使用詳解

瀏覽:135日期:2023-07-29 15:56:59

Spring提供了@Scheduled注解用于定時任務。

一、@Scheduled的基本使用

啟用調(diào)度支持:@EnableScheduling

可以將@Scheduled注釋與觸發(fā)器元數(shù)據(jù)一起添加到方法中。例如,以下方法每隔5秒調(diào)用一次,并具有固定的延遲,這意味著周期是從前面每次調(diào)用的完成時間開始計算的

@Scheduled(fixedDelay=5000)public void doSomething() {// something that should execute periodically}

如果需要固定速率執(zhí)行,可以更改批注中指定的屬性名。以下方法每5秒調(diào)用一次(在每次調(diào)用的連續(xù)開始時間之間計算)

@Scheduled(fixedRate=5000)public void doSomething() {// something that should execute periodically}

對于固定延遲和固定速率任務,可以通過指示在首次執(zhí)行方法之前要等待的毫秒數(shù)來指定初始延遲

@Scheduled(initialDelay=1000, fixedRate=5000)public void doSomething() {// something that should execute periodically}

如果簡單的周期性調(diào)度不夠表達,可以提供cron表達式。例如,以下命令僅在工作日執(zhí)行:

@Scheduled(cron='*/5 * * * * MON-FRI')public void doSomething() {// something that should execute on weekdays only}

實現(xiàn)SchedulingConfigurer接口,重寫configureTasks方法:

@Schedule注解的一個缺點就是其定時時間不能動態(tài)更改,它適用于具有固定任務周期的任務,若要修改任務執(zhí)行周期,只能走“停服務→修改任務執(zhí)行周期→重啟服務”這條路。而基于 SchedulingConfigurer 接口方式可以做到。SchedulingConfigurer 接口可以實現(xiàn)在@Configuration等注解類上。

ScheduledTaskRegistrar類包括以下幾個重要方法:

void addTriggerTask(Runnable task, Trigger trigger) void addTriggerTask(TriggerTask task)void addCronTask(Runnable task, String expression)void addCronTask(CronTask task)void addFixedRateTask(Runnable task, long interval)void addFixedRateTask(IntervalTask task)void addFixedDelayTask(Runnable task, long delay)void addFixedDelayTask(IntervalTask task)

具體實現(xiàn)參考如下:

@Componentpublic class TestTask implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.addTriggerTask(new Runnable() { @Override public void run() {// 定時任務要執(zhí)行的內(nèi)容System.out.println('【開始執(zhí)行定時任務。。。】'); } }, new Trigger() { @Override public Date nextExecutionTime(TriggerContext triggerContext) {// 定時任務觸發(fā),可修改定時任務的執(zhí)行周期String cron = '0 0/5 * * * ?'; //可以將表達式配置在數(shù)據(jù)庫中CronTrigger trigger = new CronTrigger(cron);Date nextExecDate = trigger.nextExecutionTime(triggerContext);return nextExecDate; } }); }}

提示:如果在數(shù)據(jù)庫修改時格式出現(xiàn)錯誤,則定時任務會停止,即使重新修改正確;此時只能重新啟動項目才能恢復。

二、使用@Scheduled注意事項

spring的注解@Scheduled 需要寫在實現(xiàn)方法上; 定時器的任務方法不能有返回值(如果有返回值,spring初始化的時候會告訴你有個錯誤、需要設定一個proxytargetclass的某個值為true),不能指向任何的參數(shù); 如果該方法需要與應用程序上下文的其他對象進行交互,通常是通過依賴注入來實現(xiàn); 實現(xiàn)類上要有組件的注解@Component。

三、使用@Scheduled常見問題

單線程任務丟失,轉為異步線程池

默認的 ConcurrentTaskScheduler 計劃執(zhí)行器采用Executors.newSingleThreadScheduledExecutor() 實現(xiàn)單線程的執(zhí)行器。因此,對同一個調(diào)度任務的執(zhí)行總是同一個線程。如果任務的執(zhí)行時間超過該任務的下一次執(zhí)行時間,則會出現(xiàn)任務丟失,跳過該段時間的任務。上述問題有以下解決辦法:

采用異步的方式執(zhí)行調(diào)度任務,配置 Spring 的 @EnableAsync,在執(zhí)行定時任務的方法上標注 @Async配置任務執(zhí)行池,線程池大小 n 的數(shù)量為 單個任務執(zhí)行所需時間 / 任務執(zhí)行的間隔時間。如下:

//每30秒執(zhí)行一次@Async('taskExecutor')@Scheduled(fixedRate = 1000 * 3)public void reportCurrentTime(){ System.out.println ('線程' + Thread.currentThread().getName() + '開始執(zhí)行定時任務===&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7&&&====》' + new SimpleDateFormat('yyyy-MM-dd HH:mm:ss').format(new Date())); long start = System.currentTimeMillis();}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Spring
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产夜色精品一区二区av| 亚洲视频大全| 国产一区二区高清不卡| 日本一区二区三级电影在线观看| 国产91露脸合集magnet| 欧美丰满美乳xxx高潮www| 麻豆高清免费国产一区| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲一线二线三线久久久| 亚洲国产美女| 一区二区三区高清| 国产亚洲精品v| 一区二区三区国产| 国产精品免费区二区三区观看| 亚洲欧美精品午睡沙发| 激情欧美一区| 中文字幕中文在线不卡住| 国产精品hd| 一区二区中文视频| 在线欧美日韩| 一区二区三区免费网站| 正在播放亚洲| 亚洲国产成人tv| 欧美中日韩免费视频| 亚洲成人第一页| 在线观看网站黄不卡| 精品在线观看免费| 欧美精品tushy高清| 国产黄色91视频| 欧美成人aa大片| av亚洲精华国产精华精华| 欧美成va人片在线观看| 91在线免费播放| 国产精品麻豆视频| 亚洲国产一区二区三区a毛片| 亚洲精品一二三四区| 欧美亚洲在线| 中文字幕在线视频一区| 日韩午夜激情| 天天做天天摸天天爽国产一区| 欧美优质美女网站| 国产一区二区三区观看| 精品99999| 韩日成人在线| 亚洲成人在线免费| 欧美综合视频在线观看| 国产一区二区在线观看视频| 91麻豆精品国产自产在线观看一区 | 欧美videos中文字幕| 99re成人在线| 亚洲人成伊人成综合网小说| 久久久99爱| 国产精品亚洲午夜一区二区三区| 精品国产123| 雨宫琴音一区二区在线| 丝袜亚洲另类丝袜在线| 3d成人动漫网站| 91亚洲精品一区二区乱码| 亚洲日本丝袜连裤袜办公室| 久久久精品日韩| 国产精华液一区二区三区| 中文文精品字幕一区二区| 欧美综合77777色婷婷| 国产米奇在线777精品观看| 国产婷婷精品av在线| 国产精品久久亚洲7777| 国产精选一区二区三区| 国产精品传媒在线| 色94色欧美sute亚洲线路一久| 粉嫩高潮美女一区二区三区 | 国产成人av电影在线| 国产婷婷色一区二区三区在线| 9国产精品视频| 日本亚洲免费观看| 精品国产乱码久久久久久1区2区 | 成人app在线| 一区二区三区日本| 欧美日韩在线播放三区四区| av中文字幕亚洲| 一区二区三区毛片| 欧美精品 日韩| 欧美婷婷久久| 麻豆国产91在线播放| 国产日韩av一区| 91成人在线免费观看| 91麻豆精品秘密| 青青草精品视频| 国产偷国产偷精品高清尤物| 久久久水蜜桃av免费网站| 不卡视频在线观看| 亚洲高清免费视频| 26uuu久久天堂性欧美| 免费亚洲一区二区| av中文字幕亚洲| 午夜免费久久看| 久久精品亚洲麻豆av一区二区 | 风间由美一区二区av101| 依依成人精品视频| 91精品国产麻豆国产自产在线 | 日韩一区二区在线观看视频播放| aa级大片欧美三级| 国产成人精品三级| 亚洲一区二区视频在线| 26uuu亚洲综合色| 久久精品一区| 欧美日韩1区| 极品瑜伽女神91| 亚洲欧美日韩中文播放| 日韩一级免费观看| 久久蜜桃精品| 欧美日韩天堂| 国产一区二区h| 亚洲国产视频一区| 久久精品日产第一区二区三区高清版| 欧洲激情一区二区| 一区二区av| 成人手机在线视频| 午夜国产精品一区| 国产精品每日更新| 在线视频一区二区三区| 亚洲国产专区| 99精品视频一区| 国产综合色产在线精品| 亚洲无人区一区| 亚洲国产电影在线观看| 制服丝袜av成人在线看| 色哟哟一区二区| 亚洲国产三级| 91蜜桃在线观看| 国产美女久久久久| 视频一区二区中文字幕| 国产精品久久久久久久久免费樱桃 | 国内欧美视频一区二区| 亚洲自拍偷拍九九九| 国产性天天综合网| 日韩欧美在线不卡| 欧美三级一区二区| 国产精品永久| 影音欧美亚洲| 国产精品成人观看视频免费| yourporn久久国产精品| 国产馆精品极品| 精油按摩中文字幕久久| 日韩国产欧美在线观看| 亚洲午夜电影网| 亚洲欧美欧美一区二区三区| 国产精品色噜噜| 国产色爱av资源综合区| 精品久久久久久亚洲综合网| 4438亚洲最大| 欧美日韩精品一区二区天天拍小说| 久久久久久自在自线| 一级成人国产| 国产精品xvideos88| 国产精品午夜春色av| 日日夜夜免费精品| 亚洲精品综合在线| 日本一区二区三区免费乱视频| 69久久夜色精品国产69蝌蚪网| 色哟哟国产精品| 免费日韩av| 香港久久久电影| 一区二区高清| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美日本一区二区视频在线观看 | 欧美一级高清片| 欧美丰满美乳xxx高潮www| 在线观看91精品国产入口| 免费日韩精品中文字幕视频在线| 99热精品在线观看| 日韩一级欧洲| 国产亚洲一级| 国产嫩草一区二区三区在线观看| 中文日韩欧美| 国产美女精品| 午夜亚洲影视| 久久精品人人| 欧美在线制服丝袜| 欧美日韩色综合| 91麻豆精品国产91久久久久| 欧美日韩久久一区二区| 正在播放亚洲一区| 日韩免费一区二区| 欧美成人精品1314www| 欧美精品一区二区三区蜜桃视频 | 青青草视频一区| 韩国v欧美v亚洲v日本v| 国产成人亚洲综合色影视| 粗大黑人巨茎大战欧美成人| 不卡一区二区中文字幕| 欧美+亚洲+精品+三区| 亚洲成人原创| 午夜亚洲性色视频| 日本高清不卡一区| 欧美日韩中文精品| 91精品国产丝袜白色高跟鞋| 日韩美女视频一区二区在线观看| ww亚洲ww在线观看国产| 国产精品视频第一区| 亚洲免费av在线|