提交即刻即忘请求
Submitting A Fire-N-Forget Request
在 Spring 引导应用程序中,我有以下工作代码用于在 Rest 控制器中提交请求-响应请求:
@GetMapping("/request-response")
public ResponseEntity<Mono<Message>> requestResponseCtr() throws InterruptedException {
Mono<Message> message = this.rsocketRequesterMono.flatMap(
requester -> requester.route("request-response")
.data(new Message(...))
.retrieveMono(Message.class)
);
log.info("\nResponse was: {}", message);
return ResponseEntity.of(Optional.of(message));
}
根据我对 the RSocket Java document 的理解,我需要将 retriveveMono(...) 替换为 send() 以提交即发即弃请求(文档第 12 页)。以下代码应该可以工作。
@GetMapping("fire-and-forget")
public ResponseEntity<Mono<Void>> fireAndForget() throws InterruptedException {
log.info("\nFire-And-Forget...");
this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
);
return ResponseEntity.of(Optional.of(Mono.empty()));
}
然而,它不起作用。在TCP启动工具上,没有任何流量。
提交即刻即忘的正确方法是什么?
这次通话
this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
);
没有做任何事情,因为没有人订阅它。
您可能需要
ResponseEntity.of(Optional.of(this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
)));
在 Spring 引导应用程序中,我有以下工作代码用于在 Rest 控制器中提交请求-响应请求:
@GetMapping("/request-response")
public ResponseEntity<Mono<Message>> requestResponseCtr() throws InterruptedException {
Mono<Message> message = this.rsocketRequesterMono.flatMap(
requester -> requester.route("request-response")
.data(new Message(...))
.retrieveMono(Message.class)
);
log.info("\nResponse was: {}", message);
return ResponseEntity.of(Optional.of(message));
}
根据我对 the RSocket Java document 的理解,我需要将 retriveveMono(...) 替换为 send() 以提交即发即弃请求(文档第 12 页)。以下代码应该可以工作。
@GetMapping("fire-and-forget")
public ResponseEntity<Mono<Void>> fireAndForget() throws InterruptedException {
log.info("\nFire-And-Forget...");
this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
);
return ResponseEntity.of(Optional.of(Mono.empty()));
}
然而,它不起作用。在TCP启动工具上,没有任何流量。
提交即刻即忘的正确方法是什么?
这次通话
this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
);
没有做任何事情,因为没有人订阅它。
您可能需要
ResponseEntity.of(Optional.of(this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
)));