当前位置: 首页 > 知识库问答 >
问题:

将单声道转换为对象 java 而不使用块()/块第一()/块最后()

强保臣
2023-03-14

我想在不使用block()/blockFirst()/blockLast()的情况下将mono转换为对象java。请告诉我如何转换它。

共有2个答案

柯景龙
2023-03-14

我在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();
    }
杜英叡
2023-03-14

官方的路径是< 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

  • 我正在寻找有关同步块的澄清。考虑一下这个类 - A是单例。getValue在整个应用程序中被多个线程大量访问。我添加了一个新方法remove,它从映射中删除一个键。如果如上所述执行删除, 当线程位于remove方法的同步块中时,我假设它将获取map对象上的锁。这是否意味着其他试图通过getValue方法访问映射的线程将被阻止?(我希望他们这样做。) 当remove方法的同步块中没有线程时,访问ge