【发布时间】:2020-04-17 15:18:29
【问题描述】:
我在 Spring Webflux 中执行阻塞操作时遇到了一个小问题。我检索了文章文档列表,并且从文章文档列表中,我想更新另一个对象。
当我执行以下操作时,有时它可以工作,有时它会抛出“block()/blockFirst()/blockLast() 正在阻塞,线程 reactor-http-nio-2 不支持”。您能否建议如何解决。我真的不想让它阻塞,但不知道如何继续。 stackoverflow 中有类似的线程,但不符合我的要求。
如果有人能建议一种解决方法,那就太好了?
private OrderInfo setPrices(final OrderInfo orderInfo) {
final List<ArticleDocument> articleDocuments = getArticleDocuments(orderInfo).block(); // Problematic line
for (ArticleDocument article : articleDocuments) {
//Update orderInfo based on one of the article price and few more condition.
}
return orderInfo;
}
private Mono<List<ArticleDocument>> getArticleDocuments(final OrderInfo orderInfo) {
return this.articleRepository.findByArticleName(orderInfo.getArticleName()).collectList();
}
【问题讨论】:
标签: spring-boot reactive-programming spring-webflux