- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我可以详细阐述的在 REST 调用中使用 Reactor 获得异步性的最佳想法,以提高可用性:我不满足......关于如何做得更好的任何想法?
(complete code here for reference)
REST 接口(interface):
@RestController
public class REST_Interface {
@Autowired
public EventBus eventBus;
@RequestMapping("/getGreeting/{name}")
public DeferredResult<String> getGreeting(@PathVariable String name) {
DeferredResult<String> result = new DeferredResult<>();
EventWrapper<String> wrapper = new EventWrapper<>(result, name);
eventBus.notify("greeting.topic", Event.wrap(wrapper));
return result;
}
}
事件包装器:
public class EventWrapper<T> {
private DeferredResult<T> deferredResult;
private T payload;
public EventWrapper(DeferredResult<T> deferredResult, T payload) {
this.deferredResult = deferredResult;
this.payload = payload;
}
// Getters & Setters
}
事件消费者:
@Consumer
public class EventConsumer {
@Autowired
public EventBus eventBus;
@Selector("greeting.topic")
public void onTestTopic(Object o) {
System.out.println("Event receved for Logging " + o.toString());
}
@Selector("greeting.topic")
public void wrappedGreeter(EventWrapper<String> ew) {
ew.getDeferredResult().setResult("Ciao " + ow.getPayload().toUpperCase());
}
}
最佳答案
看看EventBus.sendAndReceive(),它正是针对这种用例而设计的。示例来自http://projectreactor.io/docs/reference/#bus-request-reply :
EventBus bus;
bus.receive($("job.sink"), (Event<String> ev) -> {
return ev.getData().toUpperCase();
});
bus.sendAndReceive(
"job.sink",
Event.wrap("Hello World!"),
s -> System.out.printf("Got %s on thread %s%n", s, Thread.currentThread())
);
关于java - Spring 异步 REST 与 DeferredResult 和 Reactor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33854611/
我有这个 REST Controller @RequestMapping(path = "/hello", method = RequestMethod.POST) @ResponseStatus(H
我有一个 Spring Boot 应用程序和遗留代码, Controller 中有两个端点,这两个端点都返回不同对象的 DeferredResult<> ,现在我需要创建一个新端点,它基本上调用这两个
我正在使用DeferredResult在我的 Spring MVC 应用程序中处理一些可能长时间运行的操作的服务器端处理。它可能非常快,或者可能需要一两秒。 但无论哪种情况,传入的 HTTP 请求都会
我有一个旧的应用程序,客户端通过非常慢的连接(GPRS)上传大文件。目前我们使用Spring MVC和旧的servlet 2.0标准并直接获取请求inputStream,这显然会导致长时间运行的线程阻
我的应用程序应该有 2 个核心端点:push、pull 用于发送和获取数据。 拉取操作应该异步进行并产生 DeferredResult。当用户调用 pull service over rest 时,会
我正在使用 SpringBoot 1.4.4 创建异步 RESTful api。一切正常,除非请求被成功处理,DeferredResult> 总是有空主体和 200 OK 状态代码,即使我明确地将字符
我正在实现 long polling as per the Spring blog from some time ago . 这里我转换的方法与以前具有相同的响应签名,但不是立即响应,它现在使用长轮询
我正在尝试构建一个 REST 网络服务器,其中 GET 请求是非阻塞的,即使它需要进行稍微耗时的调用也是如此。 @RestController public class Endpoint {
为了实现长轮询,我尝试了不同的解决方案,但没有获得任何好的结果。 因此,我决定研究异步方法和 DeferredResult。这里我实现了 REST Controller 。 @Controller("
我有一个 comet(长轮询)Controller 调用,它接受一些 id 并 puts 然后进入阻塞队列,如果没有运行该 id 的计算,对于一个 Consumer 从 queue 中 take 并对
我在 Spring MVC 上使用 deferredResult,但是使用这段代码,超时仍然将 HTTP 代码 503 发送回客户端。 future.onCompletion(new Runnable
我有一个 Java 7 Spring Boot (1.5.4) RESTfull 服务,其端点返回 DeferredResult: @RequestMapping(value = "/download
我有一个 Guava ListenableFuture 实例和 Spring DeferredResult 的列表。我想为列表中第一个成功的 future 设置结果,或者如果超时尚未到期以从所有 fu
对于其余接口(interface),使用从 Controller 返回的 Spring MVC + RxJava + DeferredResult。 我正在考虑将 Hateoas 支持添加到端点。自然
以此为基础Jira 我有这个方法: val innerResult: DeferredResult[Object] = new DeferredResult[Object]() override de
我正在使用新的 spring 3.2 异步 servlet 请求。除了这一种情况之外,一切都运行良好... @RequestMapping("/test") @ResponseBody public
我在 Java 7 上使用 Spring 4.3.18 和 Spring Boot 1.5.14。 我正在实现一个 RestController 端点,它返回一个带有超时回调的 DeferredRes
Spring Web 3.2 带有一个用于异步请求处理的DeferredResult 类。它有一个 setErrorResult 用于在出现问题时提供替代响应,但没有提供 http 错误代码的选项。
Spring MVC 让 Controller 返回DeferredResult 和ListenableFuture(由ListenableFutureTask 实现)来做异步响应。有什么不同?我应该
客户端定期调用异步方法(长轮询),向其传递股票代码的值,服务器使用该值查询数据库并将对象返回给客户端。 我正在使用 Spring 的 DeferredResult类,但是我不熟悉它是如何工作的。请注意
我是一名优秀的程序员,十分优秀!