spring mvc服务端怎样推送 DeferredResult
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇文章给大家分享的是有关spring mvc服务端怎样推送 DeferredResult,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
千家信息网最后更新 2025年02月01日spring mvc服务端怎样推送 DeferredResult
本篇文章给大家分享的是有关spring mvc服务端怎样推送 DeferredResult,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
示例1:
package com.example.demo.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.context.request.async.DeferredResult;import java.time.LocalDateTime;import java.util.concurrent.TimeUnit;@Controllerpublic class PushController { private static final Logger LOGGER = LoggerFactory.getLogger(PushController.class); @RequestMapping("/deferre") @ResponseBody public DeferredResultDeferredCall() { LOGGER.info("---请求开始---"); try { return handle(); } finally { LOGGER.info("---请求结束---"); } } private DeferredResult handle() { DeferredResult deferredResult = new DeferredResult<>(); new Thread(() -> { try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { e.printStackTrace(); } LOGGER.info("---填充值---"); deferredResult.setResult(LocalDateTime.now().toString()); }).start(); return deferredResult; }}
示例2:
@RestControllerpublic class PiceaServletContoller { @Autowired private PiceaService piceaService; @RequestMapping("/deferredresult") public DeferredResultdeferredResult() throws Exception { System.out.println("控制层执行线程:" + Thread.currentThread().getName()); //超时 DeferredResult deferredResult = new DeferredResult (10*1000L); deferredResult.onTimeout(new Runnable() { @Override public void run() { System.out.println("异步线程执行超时"); deferredResult.setResult("线程执行超时"); } }); deferredResult.onCompletion(new Runnable() { @Override public void run() { System.out.println("异步执行完毕"); } }); FIXED_THREAD_POOL.execute(new Runnable() { @Override public void run() { System.out.println("异步执行线程:" + Thread.currentThread().getName()); try { String str = piceaService.task2(); Thread.sleep(1000); deferredResult.setResult("这是【异步】的请求返回: " + str); } catch (InterruptedException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } } }); return deferredResult; } /** * 线程池 */ public static ExecutorService FIXED_THREAD_POOL = Executors.newFixedThreadPool(10);}
以上就是spring mvc服务端怎样推送 DeferredResult,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
线程
推送
服务
更多
知识
示例
篇文章
实用
就是
工作会
文章
看吧
知识点
行业
详情
资讯
资讯频道
跟着
这是
部分
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小学家庭教育与网络安全视频
网络安全防线严守保密体会
湖北警官学校网络安全与执法
先东服务器
网络安全法第1条讲
亚马逊存储中的数据库
数据库平台建设一般多少钱
热云数据库
黑色沙漠未找到登录服务器
计算机和软件开发有限公司
中经专网数据库是什么意思
万兆网卡 服务器
玖沃服务器JWX016
河北工业大学网络安全考什么
云赞软件开发怎么样
csgo杭州服务器链接失败
上海数据库营销
广西牛犇互联网科技有限公司
网络服务器管理人员属于哪类人
时光mc服务器生存
畅捷通T3数据库的默认sa口令
金山云云网络技术总监
软件开发阶段主要采用的工具
利用gis的软件开发
服务器请求图片路径打不开
数字安全网络安全股
网络安全年会直播
数据库程序员开发笔记本推荐
建立问题线索动态数据库管理
服务器带外管理解决方案