spring-boot 定時任務

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260543.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260543.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260543.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Lightbox制作照片條

前言:這是國外的一個教程,我也很喜歡這個網頁里面的教程,主要技術是CSS3和JQuery以及一些JQuery的插件的應用,當然從這些教程我也學到了他們制作時的一些思路,就好像做數學題那樣,只要思路把握了&#xff0…

iOS- 如何改變section header

希望這個從UITableViewDelegate協議里得到的方法可以對你有所幫助: - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {UIView *headerView [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.…

第6章 Python 數字圖像處理(DIP) - 彩色圖像處理2 - 灰度分層(灰度分割)和彩色編碼,灰度值到彩色變換,Gray to RGB

第6章主要講的是彩色圖像處理,一些彩色模型如RGB,CMK,CMYK,HSI等色彩模型;彩色模型的變換關系;還包含由灰度圖像怎樣處理成假彩色圖像;使用彩色分割圖像等。本章比較少理論還有變換的描述&#…

值重新賦值_JavaScript-賦值運算符

好好學習,天天向上賦值運算符賦值運算符必須有變量參與運算,賦值運算符會做兩件事情第一,將變量中原始值參與對應數學運算,與右側的數據第二,將運算結果再重新賦值給變量變量位于操作符的左側賦值運算符符號&#xff1…

超聲換能器的原理及設計_超聲波發生器、變幅桿、焊頭的匹配介紹

一.超聲波換能器原理與設計(超聲波振動系統)匹配摘要:就塑料焊接機的超聲波換能器系統進行設計和計算,并用PRO- E 三維軟件繪出三維模型,最后進行頻率分析,為超聲波換能系統提供了有用的設計方法。關鍵詞:超聲波換能器…

位圖法

判斷集合中存在重復是常見編程任務之一,當集合中數據量比較大時我們通常希望少進行幾次掃描,這時雙重循環法就不可取了。位圖法比較適合于這種情況,它的做法是按照集合中最大元素max創建一個長度為max1的新數組,然后再次掃描原數組…

CentOS查看和修改PATH環境變量的方法

為什么80%的碼農都做不了架構師?>>> 查看PATH:echo $PATH 以添加mongodb server為列 修改方法一: export PATH/usr/local/mongodb/bin:$PATH //配置完后可以通過echo $PATH查看配置結果。 生效方法:立即生效 有效期限…

IOS簡單的登陸界面

主要需要注意的幾個問題: 1.導入圖片方式最好用文件導入 代碼: 在ViewController.m文件中 2.UILable常用屬性 property(nonatomic,copy) NSString *text; //設置文本內容 property(nonatomic,retain) UIFont *font; //設置字體 …

第6章 Python 數字圖像處理(DIP) - 彩色圖像處理3 -色彩變換、彩色校正、彩色圖像平滑和銳化、HSI彩色空間中的分割、RGB空間中的分割、彩色邊緣檢測

這里寫目錄標題色彩變換彩色圖像平滑和銳化使用彩色分割圖像HSI 彩色空間中的分割RGB空間中的分割彩色邊緣檢測彩色圖像中的噪聲色彩變換 # 圖像顏色分量的顯示 from PIL import Imageimg_ori Image.open(DIP_Figures/DIP3E_Original_Images_CH06/Fig0630(01)(strawberries_f…

javascript 在對象中使用 定時器_如何使用JavaScript 面向對象編程

學習目標理解面向對象開發思想掌握 JavaScript 面向對象開發相關模式面向對象介紹什么是對象Everything is object (一切皆對象)我們可以從兩個層次來理解對象:(1) 對象是單個事物的抽象。一本書、一輛汽車、一個人都可以是對象,一個數據庫、一張網頁、一…

char數組轉string_String類和其它數據類型的相互轉換

對于上面的這些包裝類,除了Character以外,都有可以直接使用字符串參數的構造函數,這也就使得我們將String類轉換為這些數據類型變得相當之簡單,即:Boolean(String s)、Integer(String s)、Long(String s)、Float(Strin…

ORACLE 各種閃回操作

1、Flashback Database(利用閃回日志恢復) Oracle Flashback Database特性允許通過SQL語句Flashback Database語句,讓數據庫前滾到當前的前一個時間點或者SCN,而不需要做時間點的恢復。閃回數據庫可以迅速將數據庫回到誤操作或人為…

【轉】介紹設置Session失效的幾種方法

轉載地址:http://developer.51cto.com/art/201106/269493.htm Session對象是HttpSessionState的一個實例。該類為當前用戶會話提供信息,還提供對可用于存儲信息會話范圍的緩存的訪問,以及控制如何管理會話的方法。下面介紹設置session失效的幾…

mysql導入數據load data infile用法整理

有時候我們需要將大量數據批量寫入數據庫,直接使用程序語言和Sql寫入往往很耗時間,其中有一種方案就是使用MySql Load data infile導入文件的形式導入數據,這樣可大大縮短數據導入時間。 假如是從MySql客戶端調用,將客戶端的文件導…

python3循環一直到一個值結束_一步一步學Python3(小學生也適用) 第十七篇:循環語句for in循環...

一、Python for in循環Python for in 循環,是用來遍歷任何數據序列,如一個列表,一個字符串,一個字典,一個元組等。for in 循環的一般語法如下:for item in 序列:語句塊else:語句塊for in 字符串&#xff1…

設置Jupyter notebook 默認工作路徑,修改Jupyter notebook 默認瀏覽器為Chrome

這里寫目錄標題一 設置Jupyter notebook 默認工作路徑二 修改Jupyter notebook 默認瀏覽器為Chrome一 設置Jupyter notebook 默認工作路徑 安裝好anaconda 后,jupyter notebook默認是有安裝好的。在windows的菜單欄找到anaconda目錄,如下圖 鼠標右鍵點…

python調用c#注意事項_Python調用C#編寫的DLL

起因是工作中需要用的開發編寫的DLL,但是它是使用C#編寫的,本人不想使用C#去寫測試代碼,所以需要使用Python來掉這個DLL內的方法 就用這個就很好,不要問為啥不用微軟的Ironpython和別的啥,好用就行了,解決問…

jquery實戰--定寬

大家有沒有遇到過一個問題,就是一個列表,或是一段文字過多時,截取多余的部分用省略號,好吧,證明你實力的時候到了,我下面先分解一下方法,再用插件寫出來,首先我們說的是,用到的第一個…

struts2 Action獲取表單數據

1.通過屬性驅動式 1.首先設置 表單中的數據的name值 如&#xff1a;<input type"text" name"username" value""> 2.你用的是struts2&#xff0c;那么就在java類中寫一個變量&#xff1a;變量名和頁面上的name值一致 并有這個變量的get 和…

python 計算器 eval ctf_CTF逆向--.NET與Python篇

題目(來源&#xff1a;Jarvis-OJ)&#xff1a;Classical CrackmeClassical CrackMe2FindKeyLoginClassical Crackme首先查殼沒有殼&#xff0c;不過發現這是一個.net的程序&#xff0c;將其拖進dnSpy中&#xff0c;找到主程序&#xff0c;同時發現關鍵代碼&#xff0c;如下所示…