首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DeferredResult解决了什么问题

配置变更,客户端通过长轮询请求服务端,服务端通过DeferredResult实现变更通知 消息推送,对于一些服务端发生变更,需要向客户端发送消息通知的场景,不管是C/S还是B/S模式,也可以通过DeferredResult...三、使用方式 1.编写DeferredResult返回类型api @GetMapping("/deferredresult/test") public DeferredResult testDeferredResult...(long sleepTime) { DeferredResult deferredResult = new DeferredResult(5000L,"server side...; } 2.接口调用 这样就完成了DeferredResult异步调用,当然我们也可以在DeferredResult设置超时相关逻辑。...接收到请求后,将请求暂存并且释放容器线程,用来接收新的请求 容器超时逻辑和业务正常处理逻辑将结果塞到DeferredResult返回调 spring对于DeferredResult请求处理 1.请求预处理

80831
您找到你想要的搜索结果了吗?
是的
没有找到

如何提升系统的吞吐量?和你理解的不一样的异步场景

这种方案spring给我们提供了DeferredResult和Callable方式实现, 官方文档中说DeferredResult和Callable都是为了异步生成返回值提供基本的支持。...方式 DeferredResult使用方式与Callable类似,但在返回结果上不一样,它返回的时候实际结果可能没有生成,实际的结果可能会在另外的线程里面设置到DeferredResult中去。...接下来将对DeferredResult的处理流程进行说明,并实现一个较为简单的示例。...DeferredResult的处理过程与Callback类似,不一样的地方在于它的结果不是DeferredResult直接返回的,而是由其它线程通过同步的方式设置到该对象中。...Callback和DeferredResult用于设置单个结果。

83120

【小家Spring】高性能关键技术之---体验Spring MVC的异步模式(ResponseBodyEmitter、SseEmitter、StreamingResponseBody) 高级使用篇

前言 上篇博文:【小家Spring】高性能关键技术之—体验Spring MVC的异步模式(Callable、WebAsyncTask、DeferredResult) 基础使用篇 介绍了Spring...那么本篇文章主要介绍一下异步模式的高级使用(ResponseBodyEmitter、SseEmitter、StreamingResponseBody) DeferredResult高级使用 上篇博文介绍的它的基本使用...,那么本文主要结合一些特殊的使用场景,来介绍下它的高级使用,让能更深刻的理解DeferredResult的强大之处。... deferredResult = new DeferredResult(); //当deferredResult完成时(不论是超时还是异常还是正常完成),都应该移除... deferredResult : deferredResults) { deferredResult.setResult(namespace + " changed

2.7K41

一图理解Apollo配置中心,配置变更如何及时通知客户端的

com.ctrip.framework.apollo.internals.RemoteConfigLongPollService#doLongPollingRefresh) 2、Config Service的notifications/v2接口接收到客户端上面发起的请求,不会立即返回结果,而是通过Spring DeferredResult...Config Service会把DeferredResult放到本地缓存中: private final Multimap deferredResults...变更通知时会根据key从缓存中获取DeferredResult,设置值,让挂起的请求返回给客户端,达到通知客户端的功能。...com.ctrip.framework.apollo.biz.message.DatabaseMessageSender#sendMessage) 4、Config Service后台异步线程默认每秒扫描更新通知消息表,如果有配置发布动作,会从步骤2中的DeferredResult...缓存获取对应的DeferredResult,并让NotificationControllerV2会调用DeferredResult的setResult方法,传入有配置变化的namespace信息,同时该请求会立即返回

70430

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券