中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

SpringMVC異步處理的示例分析

發布時間:2022-03-31 14:37:46 來源:億速云 閱讀:128 作者:小新 欄目:編程語言

這篇文章主要介紹SpringMVC異步處理的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

異步處理 demo

如果要啟用異步返回,需要開啟 @EnableAsync。如下的代碼中,使用 DeferredResult 進行異步處理。

請求進來后,首先創建 DeferredResult 對象,設置超時時間為 60 秒。然后指定DeferredResult 在異步完成和等待超時時的回調。同步的處理只需要創建異步任何,然后返回DeferredResult 即可。這樣 Spring MVC 處理完此次請求后,不會立即返回 response 給客戶端,會一直等待DeferredResult 處理完成。如果DeferredResult 沒有在 60 秒內處理完成,就會觸發超時,然后返回 response 給客戶端。

@RequestMapping(value = "/async/demo")
public DeferredResult<String> async(){
 // 創建 DeferredResult,設置超時時間 60s
 DeferredResult<String> deferredResult = new DeferredResult<>((long)60 * 1000);

 String uuid = UUID.randomUUID().toString();
 Runnable callback = () -> manager.remove(deferredResult, uuid);
 // 設置完成和超時的回調
 deferredResult.onCompletion(callback);
 deferredResult.onTimeout(callback);

 // 創建異步任務
 manager.addAsyncTask(deferredResult, uuid);

 // 同步返回 DeferredResult
 return deferredResult;
}

對于異步任務來說,需要持有DeferredResult 對象。在異步處理結束時,需要手動調用DeferredResult.setResult完成輸出。調用setResult 時,數據輸出寫到客戶端,然后觸發異步完成事件執行回調。

task.getDeferredResult().setResult(ConfigJsonUtils.toJsonString(map));

以上是“SpringMVC異步處理的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

安徽省| 元江| 大足县| 来凤县| 保德县| 新巴尔虎右旗| 彝良县| 广平县| 屏东市| 芒康县| 栖霞市| 桃江县| 舞钢市| 黔西| 大余县| 武胜县| 凉山| 新乐市| 望城县| 东源县| 略阳县| 合阳县| 岚皋县| 尼玛县| 忻城县| 博罗县| 淮滨县| 衡东县| 天长市| 天镇县| 策勒县| 榕江县| 宜昌市| 云和县| 都江堰市| 崇义县| 汨罗市| 蛟河市| 贵南县| 巩义市| 施秉县|