91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Springboot異步任務和定時任務如何處理

發布時間:2022-05-07 16:50:00 來源:億速云 閱讀:238 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Springboot異步任務和定時任務如何處理”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Springboot異步任務和定時任務如何處理”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

1 前言

Springboot 中,異步任務和定時任務是經常遇到的處理問題方式,為了能夠用好這兩項配置,不干擾正常的業務,需要對其進行異步化配置。怎么設置合理的異步處理線程就是其核心和關鍵。

2 異步任務設置

在項目中使用異步任務是經常遇到的解決問題方式,通常是為減少請求的等待時間,將業務處理進行異步后臺處理,可以改善用戶的體驗,增加系統的吞吐量。

在 springboot 中開啟異步任務,也是十分的簡單,只需要兩步操作:

  • 1 開啟 @EnableAsync 注解。

  • 2 在需要異步處理的方法上添加 @Async

需要說明的是異步執行的方法可以有返回值,但是必須是 Future,這里和多線程 submit 的方式提交任務,獲取處理結果的方式。

到此為止,異步任務的配置和使用就結束了。異步任務使用的也是多線程線程池技術,默認情況下采用的是 SimpleAsyncTaskExecutor 來實現,但是自己的命運怎么能交到他人手上呢,總覺得不太踏實,異步任務怎么才能使用自定義的線程池去實現呢,這是一個好問題,答案也是有的,那就是 AsyncConfigurer。這是一個接口,需要實現 getAsyncExecutor 方法來獲取一個線程池,如果需要異常信息的抓取,則在實現一個方法 getAsyncUncaughtExceptionHandler 即可。

具體的代碼如下所示:

Springboot異步任務和定時任務如何處理

異步任務執行結果如下,可以說明異步任務的線程池配置已經生效:

Springboot異步任務和定時任務如何處理

3 定時任務配置

定時任務在項目開發中可以說是很常用的配置,作為業務功能的補償而存在,有這舉足輕重的地位,對于定時任務的使用,可以分為固定時間和 crontab 表達式,在實現的工具上,有 spring 自帶的 @Schedule,在單體項目中應用廣泛,不需要借助其它的平臺和額外的配置,對于簡單的任務來說已經足夠,但是對于分布式系統來說,就有點兒力不從心了,這時就誕生了 quartz、 elastic-job 和 xxl-job 等,其中 xxl-job 尤為出色。在這里,只介紹一下 @Schedule 的使用:

  • 1 全局開啟 @EnableScheduling 注解。

  • 2 在需要執行的任務上添加 @Schedule 注解,并指定執行方法,是固定執行還是采用 cron 表達式。

在實際的項目開發中,crontab 表達式應用還是很廣泛的:

Springboot異步任務和定時任務如何處理

和異步任務執行一樣,定時任務的執行也是有自己的異步任務線程池,這里需要實現的接口為 SchedulingConfigurer ,實現其 configureTasks 方法即可:

Springboot異步任務和定時任務如何處理

在一切配置文件做好后,運行后可以看出定時任務的線程池配置已經生效:

Springboot異步任務和定時任務如何處理

讀到這里,這篇“Springboot異步任務和定時任務如何處理”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

措美县| 岐山县| 宜城市| 禹州市| 麻阳| 冷水江市| 万年县| 洞头县| 宽甸| 永吉县| 榆中县| 元阳县| 海安县| 彭山县| 屏东市| 乐陵市| 策勒县| 阿城市| 登封市| 石棉县| 小金县| 宁强县| 金昌市| 柳林县| 佛教| 疏勒县| 和政县| 宁陕县| 西吉县| 望谟县| 县级市| 茌平县| 开原市| 合作市| 洛宁县| 霍州市| 库尔勒市| 宁明县| 仪征市| 尖扎县| 揭西县|