日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring-boot 定时任务

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring-boot 定时任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

1、建立項目

@SpringBootApplication @EnableAsync @EnableScheduling @EnableAutoConfiguration(exclude={ DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class}) @ImportResource("classpath:spring.xml")

@EnableAsync 開啟異步支持

@EnableScheduling 開啟定時任務支持

@EnableAutoConfiguration作用?Spring Boot會自動根據你jar包的依賴來自動配置項目。例如當你項目下面有HSQLDB的依賴時,Spring Boot會創建默認的內存數據庫的數據源DataSource,如果你自己創建了DataSource,Spring Boot就不會創建默認的DataSource。

@ImportResource("classpath:spring.xml") ?導入一些常規性配置,雖然spring-boot不推薦用xml了,但是本來還是有些習慣用xml來配置

?

2、

@Component public class TaskTest {@Scheduled(cron="0/30 * * * * ?")public void task(){System.out.println("========每30秒運行一次=======");} }

這樣一個簡單的定時任務作業系統就完成了

?

問題:下面說說過程中遇到的一個小坑,至今我都沒搞明白的一個問題主要是異常任務問題

@Scheduled(cron="0/30 * * * * ?")public void task1(){asyn();System.out.println("========每30秒運行一次=======");}@Asyncpublic void asyn(){System.out.println("========異步任務=======");}

看到代碼,很簡單明了,30秒運行一次task1方法,而task1方法則調用了一個異步方法,但是問題就出在這里,如果這樣寫的會,他這里只會同步執行異步任務,這里百思不得其解。

我的解決辦法

@Component public class TaskTest {@Autowiredprivate AsyncTask asyncTask;@Scheduled(cron="0/30 * * * * ?")public void task1(){asyncTask.asyn();//調用異步任務System.out.println("========每30秒運行一次=======");} }

異步方法不在原來定時作業的class里,這樣就可以異步作業了,不明白這里的原因,如果有人知道麻煩告訴一下

@Component public class AsyncTask {@Asyncpublic void asyn() throws InterruptedException{Thread.sleep(5000);System.out.println("========異步任務=======");} }

?

?

轉載于:https://my.oschina.net/u/1789379/blog/748924

總結

以上是生活随笔為你收集整理的spring-boot 定时任务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。