【发布时间】:2018-09-29 15:13:34
【问题描述】:
这是被动处理的正确方法吗?我看到 2 个线程一个反应性 nio,直到并包括 flatMap(fareRepo::save)。另一个线程是计算线程,它从发送消息开始一直持续到 ServerResponse.build()。我的问题是这种响应式处理请求的正确方法吗?注意:fareRepo 是响应式 couchbase repo。
谢谢
return request.bodyToMono(Fare.class).flatMap(fareRepo::save).flatMap(fs -> {
logger.info("sending message: {}, to queue", fs.getId());
jmsTemplate.send("fare-request-queue", (session) -> session.createTextMessage(fs.getId()));
return Mono.just(fs);
}).flatMap(fi -> ServerResponse.created(URI.create("/fare/" + fi.getId())).build());
【问题讨论】:
-
你的问题是题外话,因为它主要是基于意见的,但这个
fareRepo::save可能是同步操作,所以你有点混合非阻塞的东西和阻塞的东西。我会说这不是一个好习惯。 -
@john ,忘了说 fareRepo 也是反应式的。
-
@jzqa 不需要提及,因为您正在调用
flatMap:)
标签: spring reactive-programming spring-webflux