千家信息网

spring mvc服务端怎样推送 DeferredResult

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关spring mvc服务端怎样推送 DeferredResult,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
千家信息网最后更新 2026年11月02日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 DeferredResult DeferredCall() {        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 DeferredResult deferredResult() 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安全错误 数据库的锁怎样保障安全 手磨咖啡 广东猪兼强互联网科技有限公司 今日互联网科技 关于新基建和互联网科技 成都互联网科技公司 镁科技互联网资讯平台 科技伦理 互联网公司 互联网巨头投资的硬核科技 科技赋能互联网健康 青岛科技大学互联网大赛研究生 坤平互联网科技 浙南科技城互联网大厦建设工程 深圳市罗太互联网科技有限公司 明优互联网科技有限公司 伊宁互联网科技做什么的 玉溪新华互联网科技怎么选 深圳互联网科技园地址 恒生科技互联网指数十大成分股 互联网科技企业文化 山东亿川互联网科技有限责任公司 深圳市人人互联网科技有限公司 奇酷互联网科技公司 卓越科技(互联网 ) 互联网女皇 腾讯科技 欧洲十大科技互联网公司 想开互联网科技公司怎么样 996高科技互联网公司 互联网界的黑科技 青岛互联网科技园 知域互联网科技有限公司官网
0