日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Spring內置定時任務調度@Scheduled使用詳解

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

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

一、@Scheduled的基本使用

啟用調度支持:@EnableScheduling

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

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

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

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

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

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

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

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

實現SchedulingConfigurer接口,重寫configureTasks方法:

@Schedule注解的一個缺點就是其定時時間不能動態更改,它適用于具有固定任務周期的任務,若要修改任務執行周期,只能走“停服務→修改任務執行周期→重啟服務”這條路。而基于 SchedulingConfigurer 接口方式可以做到。SchedulingConfigurer 接口可以實現在@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)

具體實現參考如下:

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

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

二、使用@Scheduled注意事項

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

三、使用@Scheduled常見問題

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

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

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

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

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

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久激情网站| 日本不卡高清| 久久精品色播| 美女精品一区二区| 国产精品.xx视频.xxtv| 精品美女在线视频| 亚洲高清成人| 一区二区国产在线| 久久精品99国产精品日本| 国产美女视频一区二区| 久久永久免费| 国产一区日韩一区| 亚洲深夜福利在线观看| 国产伦理一区| 欧美日韩一区二区三区视频播放| 视频一区二区三区中文字幕| 日本在线视频一区二区| 国产精品综合| 秋霞国产精品| 久久亚洲国产| 日韩精品1区2区3区| 国产精品调教| 国产高清一区| 日韩高清一区在线| sm捆绑调教国产免费网站在线观看| 国产韩日影视精品| 国产日本精品| 四虎影视精品| 91成人小视频| 欧美影院三区| 国产亚洲第一伦理第一区| 吉吉日韩欧美| 日韩av网站在线观看| 日本少妇一区| 亚洲欧美日本国产| 岛国av在线网站| 蜜桃av一区二区在线观看| 国产精品福利在线观看播放| 男女男精品网站| 91日韩欧美| 日韩中文字幕| 久久久久久久久久久妇女| 日本h片久久| 999国产精品999久久久久久| 奇米狠狠一区二区三区| 久久国产亚洲| 免费在线观看一区| 亚洲资源网站| 欧美成人基地 | 国产乱码精品一区二区三区亚洲人 | 亚洲女人av| 精品免费视频| 91亚洲精品在看在线观看高清| 亚洲午夜在线| 欧美视频久久| 视频一区视频二区中文字幕| 亚洲伦乱视频| 久久精品女人| 国产精品久久久久av蜜臀| 免费人成精品欧美精品 | 欧美日韩精品免费观看视完整| 国产精品自在| 日韩欧美精品一区二区综合视频| 欧美午夜不卡| 亚洲人成在线网站| 精品视频91| 国产人成精品一区二区三| 日本欧美在线看| 欧美丝袜一区| 伊人网在线播放| 精品一区二区男人吃奶| 日韩美女国产精品| 亚洲精品免费观看| 在线国产日韩| 只有精品亚洲| 蜜桃视频一区二区三区 | 成人小电影网站| 欧美经典一区| 国产精品亚洲欧美日韩一区在线| 欧美欧美黄在线二区| 日韩视频精品在线观看| 中文字幕系列一区| 99久久激情| 三级小说欧洲区亚洲区| 91视频一区| 日韩av免费| 国产一区日韩一区| 99在线精品免费视频九九视| 亚洲一卡久久| 宅男噜噜噜66国产日韩在线观看| 午夜日韩在线| 免费的成人av| 日韩av一二三| 国产精品sss在线观看av| 国产精品香蕉| 久久成人av| 电影91久久久| 日韩国产综合| 国产在线成人| 蜜臀av国产精品久久久久| 亚洲精品麻豆| 麻豆高清免费国产一区| 成人精品视频| 欧美日韩免费观看一区=区三区| 国产精品毛片在线看| 丝袜美腿亚洲一区| 日韩国产一二三区| 久久伊人久久| 亚洲伦乱视频| 国产精品日韩欧美一区| 精品一区亚洲| 日本中文字幕不卡| 国产午夜精品一区在线观看| 久久久久伊人| 亚洲午夜电影| 亚洲日韩中文字幕一区| 国产精品嫩草影院在线看| 国产一区二区色噜噜| 久久精品免费一区二区三区 | 欧美日韩国产在线观看网站| 久久国产99| 国产欧美日韩| 欧美成人基地| 欧美在线亚洲| 日本午夜精品久久久久| 久久亚洲人体| 亚洲精华国产欧美| 国产欧美一级| 欧美日韩精品一区二区视频| 中文字幕一区日韩精品| 国产精品地址| 日韩欧美精品| 亚洲精品无吗| 黄色在线观看www| 国产精品免费看| 国产精品欧美一区二区三区不卡| 成人午夜国产| 激情婷婷综合| 日韩精品一区二区三区免费观影| 亚洲男人在线| 成人在线超碰| 亚洲影院天堂中文av色| 久久亚州av| 在线视频免费在线观看一区二区| 久久国产精品免费一区二区三区 | 极品日韩av| 日本午夜精品久久久久| 在线看片福利| 日韩精品1区2区3区| 麻豆国产91在线播放| 91高清一区| 久久尤物视频| 中文字幕一区二区三区日韩精品| 激情中国色综合| 亚洲3区在线| 久久精品官网| 你懂的网址国产 欧美| 亚洲一区中文| 欧美激情另类| 国产日韩亚洲| 丝袜美腿亚洲色图| 成人羞羞在线观看网站| 国产日韩一区| 亚洲免费在线| 国产精品蜜芽在线观看| 亚洲精品影视| 九九在线精品| 精品国产黄a∨片高清在线| 亚洲精品在线国产| 好看的亚洲午夜视频在线| 精品久久91| 欧美亚洲综合视频| 久久av一区| 亚洲午夜av| 快播电影网址老女人久久| 国产伦精品一区二区三区千人斩 | 亚洲成人日韩| 国产精品高颜值在线观看| 日韩精品中文字幕一区二区| 午夜欧美精品| 三级精品视频| 国产日韩一区二区三区在线| 久久久精品午夜少妇| 久久青草久久| 国产在线看片免费视频在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 男女性色大片免费观看一区二区 | 在线亚洲观看| 日韩午夜黄色| 日本在线高清| 中文字幕av一区二区三区人| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 中文国产一区| 另类小说一区二区三区| 日韩高清一区二区| 91精品亚洲| 免费看久久久| av资源新版天堂在线| 国产精品亚洲综合在线观看| 欧美日韩国产探花|