中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

wordpress做論壇網(wǎng)站免費推廣網(wǎng)站排行榜

wordpress做論壇網(wǎng)站,免費推廣網(wǎng)站排行榜,在網(wǎng)站上發(fā)消息做宣傳,做網(wǎng)站最好要買什么東西💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續(xù)學(xué)…

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。
img

  • 推薦:kwan 的首頁,持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老
  • 導(dǎo)航
    • 檀越劍指大廠系列:全面總結(jié) java 核心技術(shù)點,如集合,jvm,并發(fā)編程 redis,kafka,Spring,微服務(wù),Netty 等
    • 常用開發(fā)工具系列:羅列常用的開發(fā)工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 數(shù)據(jù)庫系列:詳細(xì)總結(jié)了常用數(shù)據(jù)庫 mysql 技術(shù)點,以及工作中遇到的 mysql 問題等
    • 懶人運維系列:總結(jié)好用的命令,解放雙手不香嗎?能用一個命令完成絕不用兩個操作
    • 數(shù)據(jù)結(jié)構(gòu)與算法系列:總結(jié)數(shù)據(jù)結(jié)構(gòu)和算法,不同類型針對性訓(xùn)練,提升編程思維,劍指大廠

非常期待和您一起在這個小小的網(wǎng)絡(luò)世界里共同探索、學(xué)習(xí)和成長。💝💝💝 ?? 歡迎訂閱本專欄 ??

博客目錄

    • 一.簡單介紹
      • 1.DeferredResult 簡介
      • 2.功能和特性
    • 二.使用方式
      • 1.Controller 中的方法
      • 2.異步任務(wù)完成后設(shè)置結(jié)果
      • 3.自定義線程池
    • 三.原理分析
      • 1.Servlet 異步支持
      • 2.DeferredResult 中介
    • 四.注意事項
      • 1.超時處理
      • 2.異常處理
      • 3.不適用于所有場景

一.簡單介紹

1.DeferredResult 簡介

DeferredResult 是 Spring Framework 中用于異步處理請求的一種機(jī)制。它允許將處理結(jié)果推遲到稍后的時間點,通常用于處理需要較長時間完成的操作,例如異步任務(wù)、長時間計算或外部服務(wù)調(diào)用。

2.功能和特性

  1. 異步處理: DeferredResult 允許將請求的處理推遲到稍后的時間,允許應(yīng)用程序異步地處理請求。

  2. 非阻塞: 使用 DeferredResult 不會阻塞容器線程,這有助于提高應(yīng)用程序的吞吐量。

  3. 長輪詢: 可以使用 DeferredResult 實現(xiàn)長輪詢(long polling)模式,其中客戶端發(fā)送請求并在服務(wù)器端保持掛起狀態(tài),直到有數(shù)據(jù)可用。

二.使用方式

1.Controller 中的方法

Controller 中的方法: 在控制器方法中,返回類型可以是 DeferredResult<T>,其中 T 是要返回的數(shù)據(jù)類型。

@GetMapping("/async-operation")
public DeferredResult<String> asyncOperation() {DeferredResult<String> deferredResult = new DeferredResult<>();// 在某個異步任務(wù)完成后,將結(jié)果設(shè)置到 DeferredResult 中asyncService.performAsyncOperation().whenComplete((result, throwable) -> deferredResult.setResult(result));return deferredResult;
}

2.異步任務(wù)完成后設(shè)置結(jié)果

異步任務(wù)完成后設(shè)置結(jié)果: 在異步任務(wù)完成后,通過 DeferredResult.setResult(result) 將結(jié)果設(shè)置到 DeferredResult 對象中。

public CompletableFuture<String> performAsyncOperation() {// 異步任務(wù)邏輯return CompletableFuture.supplyAsync(() -> "Async operation result");
}

3.自定義線程池

線程池:

public class ThreadPoolUntil {private static final int THREAD_POOL_SIZE = 10;private static ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);public static void executeTask(Runnable task) {executorService.submit(task);}public static void shutdown() {executorService.shutdown();}
}

controller:

@ApiOperation(value = "首頁-合計列表", nickname = "首頁-合計列表")
@PostMapping("/totalList")
public DeferredResult<Payload<List<TotalListDayDTO>>> totalList(@RequestBody TotalListQuery totalListQuery, @RequestHeader(value = "brandDetailNo") String brandDetailNo) {totalListQuery.setBrandDetailNo(brandDetailNo);DeferredResult<Payload<List<TotalListDayDTO>>> deferredResult = new DeferredResult<>(10000L);// 設(shè)置超時處理deferredResult.onTimeout(() -> deferredResult.setErrorResult(new Payload("504", "請求超時")));// 設(shè)置錯誤處理deferredResult.onError((Throwable t) -> deferredResult.setErrorResult(new Payload("500", "系統(tǒng)錯誤")));// 創(chuàng)建任務(wù)Runnable task = () -> deferredResult.setResult(new Payload(skuDataBusinessService.totalList(totalListQuery)));ThreadPoolUntil.executeTask(task);return deferredResult;
}

三.原理分析

1.Servlet 異步支持

Servlet 3.0+ 異步支持: DeferredResult 的實現(xiàn)依賴于 Servlet 3.0+ 的異步支持。在處理請求時,容器會將請求轉(zhuǎn)交給異步處理,允許處理線程在異步操作完成前釋放。

2.DeferredResult 中介

DeferredResult 作為中介: DeferredResult 充當(dāng)控制器方法和異步任務(wù)之間的中介,使得控制器方法可以在異步任務(wù)完成后設(shè)置結(jié)果。

四.注意事項

1.超時處理

超時處理: 可以設(shè)置 DeferredResult 的超時時間,如果異步操作在超時時間內(nèi)未完成,可以通過設(shè)置超時處理邏輯來處理。

deferredResult.setTimeout(5000); // 設(shè)置超時時間為5秒
deferredResult.onTimeout(() -> {// 處理超時邏輯deferredResult.setErrorResult("Operation timed out");
});

2.異常處理

異常處理: 需要在異步任務(wù)中捕獲可能的異常,并在 DeferredResult 中設(shè)置錯誤結(jié)果。

asyncService.performAsyncOperation().whenComplete((result, throwable) -> {if (throwable != null) {deferredResult.setErrorResult("An error occurred: " + throwable.getMessage());} else {deferredResult.setResult(result);}});

3.不適用于所有場景

不適用于所有場景: DeferredResult 適用于長時間運行的操作,但并不是適用于所有場景。對于一些簡單和快速的操作,同步處理可能更加合適。

總體而言,DeferredResult 是 Spring 中處理異步請求的強(qiáng)大工具,可以幫助改善應(yīng)用程序的性能和用戶體驗,特別是在需要處理長時間運行操作的情況下。

覺得有用的話點個贊 👍🏻 唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評論批評指正!😄😄😄

💘💘💘如果覺得這篇文對你有幫助的話,也請給個點贊、收藏下吧,非常感謝!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且長,行則將至,讓我們一起加油吧!🌙🌙🌙

img

http://www.risenshineclean.com/news/11299.html

相關(guān)文章:

  • 靜態(tài)網(wǎng)站可以做哪些內(nèi)容小程序開發(fā)框架
  • 免費下載ppt模板的網(wǎng)站有哪些站長工具seo源碼
  • 做交易網(wǎng)站百度seo排名如何提升
  • 溫州網(wǎng)站建設(shè)前十公司大同優(yōu)化推廣
  • 美圖秀秀可以做網(wǎng)站嗎河南省網(wǎng)站
  • 加強(qiáng)網(wǎng)站政務(wù)服務(wù)建設(shè)百度指數(shù)使用方法
  • 印刷網(wǎng)站建設(shè) 優(yōu)幫云品牌運營
  • 中英切換的網(wǎng)站咋做中國最大網(wǎng)站排名
  • 做跳轉(zhuǎn)鏈接到自己的網(wǎng)站谷歌瀏覽器官網(wǎng)手機(jī)版
  • 提供網(wǎng)站技術(shù)支持系統(tǒng)優(yōu)化軟件排行榜
  • 做網(wǎng)站公司鄭州鄭州的網(wǎng)站建設(shè)公司排名湖南百度推廣
  • 桂林旅游搜索seo神器
  • 新西蘭網(wǎng)站建設(shè)山東seo多少錢
  • 幫別人做網(wǎng)站自己為什么會被抓近10天的時政新聞
  • 做英文網(wǎng)站用什么字體好響應(yīng)式網(wǎng)站模板的應(yīng)用
  • 手機(jī)做圖片設(shè)計哪個軟件好湖南正規(guī)seo優(yōu)化
  • 中山建網(wǎng)站費用多少百度推廣關(guān)鍵詞排名規(guī)則
  • 做網(wǎng)站的品牌公司蘭州網(wǎng)絡(luò)推廣
  • 做網(wǎng)站架構(gòu)圖互聯(lián)網(wǎng)推廣渠道有哪些
  • 建網(wǎng)站需要的設(shè)備google官方入口
  • 網(wǎng)站建設(shè)周記廣州軟件系統(tǒng)開發(fā)seo推廣
  • wordpress 新建模板頁女裝標(biāo)題優(yōu)化關(guān)鍵詞
  • 高碑店網(wǎng)站建設(shè)價格百度互聯(lián)網(wǎng)營銷是什么
  • 網(wǎng)站配色教程正規(guī)推廣賺傭金的平臺
  • easyphp wordpressseo是什么的簡稱
  • 免費申請網(wǎng)站官網(wǎng)找競價托管公司
  • 緊急通知網(wǎng)頁升級自動訪問升級南京seo排名
  • java做的k線圖網(wǎng)站源碼下載免費建自己的網(wǎng)址
  • dnf怎么做釣魚網(wǎng)站地推app
  • 做網(wǎng)站多少錢一年武漢全網(wǎng)推廣