spring mvc服务端怎样推送 DeferredResult
发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,本篇文章给大家分享的是有关spring mvc服务端怎样推送 DeferredResult,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
千家信息网最后更新 2024年12月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安全错误
数据库的锁怎样保障安全
软件技术传感技术网络技术
小说服务器租用
苏州软件开发服务资质三级认证
中国台湾软件开发推荐
广州网络安全培训机构
目前软件开发语言
网络安全事件调查报告
数据库前景怎么样
校园网络安全宣传版面
共享服务器的电脑会泄密吗
思想政治教育和网络安全立法
迭代软件开发有哪4个阶段
公安网络安全小结
台湾云服务器性价比高
衢州数据库灭火器供应商家
云南服务器系统托管云主机
软件开发外包客户
软件开发转做大专教师
合肥软件开发人员工资水平
可信溯源网络技术
sql如何查数据库表
怎么查看华硕路由器dns服务器
一键数据库生成
wow 双线服务器
cctv1网络安全专家权小文
云服务器好还是宽带好
电脑架设网站服务器
什么网络兼职软件开发
王者怎么进不去服务器无响应
服务器加装机箱