我想在不使用block()/blockFirst()/blockLast()的情况下将mono转换为对象java。请告诉我如何转换它。
我在Spring boot 2中使用ReactiveMongoDbRepository和WebFlux在MongoDb文档/模型上生成序列/id时遇到了类似的错误。我已经使用. toFuture(). get()
作为非阻塞方法/函数的promise来处理它。
@Override
public long generateSequence(final String sequenceName) throws InterruptedException, ExecutionException {
return mongoOperations.findAndModify(new Query(Criteria.where("_id").is(sequenceName)),
new Update().inc("sequence", 1), DatabaseSequence.class).doOnSuccess(object -> {
logger.debug("databaseSequence is evaluated: {}", object);
}).toFuture().get().getSequence();
}
官方的路径是< code>block(),这应该作为一个警告,说明您可能做错了,因为阻塞一个非阻塞系统就像搬起石头砸自己的脚。
事实上,以至于我们最近禁止在Reactor的一些非阻塞< code >调度器上这样做,方法是在使用这些API时抛出一个异常:
java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread parallel-1
如果你真的喜欢搬起石头砸自己的脚,总有. toFuture(). get()
…¯\_(ツ)_/¯
的反模式解决方案
有没有办法将Mono对象转换为javaPojo?我有一个web客户端连接到第三方REST服务,而不是返回<code>Mono</code>,我必须提取该对象并询问它。 我找到的所有示例都返回
问题内容: 我在NumPy中有三个相同大小的正方形矩阵。我想将它们组合成块对角矩阵。 例: 做这个的最好方式是什么? 问题答案: scipy.linalg具有block_diag函数以自动执行此操作
我做了一个图形用户界面,它使用滑块来上下缩放对象。(在这种情况下是矩形)。我想知道是否有一种方法也可以使用滑块来指定旋转程度。所以会有两个滑块,一个控制比例,另一个控制旋转。如果有人能帮我做这个,那就太好了,这是我到目前为止用比例滑块做的。
问题内容: 我有一个关于Bitbucket的项目。仅提交源。为了将项目检索到新机器上,我在IntelliJ中使用了Version Control> Checkout from Version Control。 然后,它询问我是否要从该源创建一个新项目,对此我回答“是”。到目前为止,一切都很好。它为我创建了一个不错的Java小项目,由一个模块组成。 但是,将这个项目引入IntelliJ的目的是将其变
问题内容: 我正在阅读此问题的答案(关于“ wat”视频),它说: 这被解释为空的代码块,一元加号和空数组。第一部分不执行任何操作,将数组转换为其元素的逗号分隔字符串(用于空数组的空字符串),然后转换为数字(将空字符串转换为0),因此为0。 我目前正在从“权威指南”中学习JS,因此我试图真正理解类似的东西。 我的问题是,JS什么时候决定将其解释为空的代码块,而不是空的对象? 另外,我想理解Node
问题内容: 我正在阅读此问题的答案(关于“ wat”视频),它说: 这被解释为空的代码块,一元加号和空数组。第一部分不执行任何操作,将数组转换为其元素的逗号分隔字符串(用于空数组的空字符串),然后转换为数字(将空字符串转换为0),因此为0。 我目前正在从“权威指南”中学习JS,因此我试图真正理解类似的东西。 我的问题是,JS什么时候决定将其解释为空的代码块而不是空的对象? 另外,我想了解Node.