我目前正在使用kotlin quarkus和mutiny构建一个反应式应用程序,作为反应式编程的新手,我想知道处理以下工作流的最佳方式是什么:
以下是我目前的代码:
fun createCard(creationOrder: CreationOrder): Uni<CardCreationResult> {
return creationOrdersRepository.findByOrderId(creationOrder.orderId)
.onItem().transform {item ->
if (item != null) {
CardCreationResult.AlreadyCreated
} else {
creationOrdersRepository.save(creationOrder)
//TODO external webservice call
val cardNumber = UUID.randomUUID().toString()
creationOrdersRepository.updateCardNumberAndStatus(externalServiceCallResult)
CardCreationResult.Created
}
}
}
此方法最终将由restendpoint调用。
creationOrdersRepository.save
和creationOrdersRepository.updateCardNumberAndstatus
返回一个CompletableFuture(我正在使用夸克斯亚马逊发电机客户端)。
这是正确的方法吗?我应该在Uni中包装保存和更新CardNumberAndstatus结果(我一直在尝试,但一直收到类型错误)?
我不相信你的代码能达到你的期望。如果我理解正确,您需要在发布结果之前“保存”和“更新”。因此,您需要这样的东西(在Java中,因为我的Kotlin不太好):
return creationOrdersRepository.findByOrderId(creationOrder.orderId)
// We will be returning a Uni as the save, update and the web service are
// async
.onItem().transformToUni(item -> {
if (item != null) {
return Uni.createFrom().item(CardCreationResult.AlreadyCreated);
} else {
// Create an Uni from the save operation
Uni<Void> save = Uni.createFrom().completionStage(() ->
creationOrdersRepository.save(creationOrder));
// This uni represents the invocation of the remote service
Uni<String> webService = callWebService();
// we chain the operations save -> web service -> update -> Created
return save
.chain(webService)
.chain(externalServiceCallResult ->
Uni.createFrom().completionStage(() -> creationOrdersRepository
.updateCardNumberAndStatus(externalServiceCallResult)
)
.replaceWith(CardCreationResult.Created);
}
我有一个以下格式的csv文件,第一列是id,第二列是name,第三列是Dept,这个文件有700K多行。我试图通过使用SQL Loader在oracle表中只移动部门10、90、30和70的详细信息。 请帮帮我。如何在控制文件中使用多个条件
问题内容: 我想使用生成器yield和async函数。我阅读了本主题,并编写了以下代码: 但是我得到了错误: 语法错误:异步函数中的“ yield” 如何在异步功能中使用良率生成器? 问题答案: 更新: 从Python 3.6开始,我们有了异步生成器,能够直接在协程内部使用。 Python 3.5的旧答案: 您不能在协程内部。唯一的方法是使用/ magic方法手动实现异步迭代器。在您的情况下: 输
我有一个接受NSE参数的函数。 假设我有一个tibble,其中有一列需要订购。我想创建一个函数,它可以根据函数参数中输入的名称对列名进行排序。但是,如果我不使用参数,我希望它不对列进行排序,因此我使用< code>column_name = NULL作为默认参数(或< code>column_name = NA) 创建于 2022-04-11 由 reprex 软件包 (v2.0.1) 然而,尽管
我目前在R中有一个数据框,看起来像这样 我用group_by将数据按动物分组。我想创建一个新的列V6,它采用列V4,将较低的值除以较高的值,如果该值小于0.5,则V6= A,ifelse则V6 = b..有没有办法在R中使用带条件语句的mutate函数?实际的数据框要大得多,所以我宁愿不用手动操作。这是我希望最终数据框的样子 这就是我开始做的 但我知道这是不对的。非常感谢。
问题内容: 有什么方法可以使用html属性调用多个JavaScript函数吗? 问题答案: onclick=”doSomething();doSomethingElse();” 但实际上,最好不要使用Java,而是通过Javascript代码将事件处理程序附加到DOM节点。这被称为不引人注目的javascript。
在我的项目中,当我只需单击主页上的“加入房间”按钮时,它会将我指向特定的房间。以房间号为例;它发生在xPOgk21523aqPW上,它通过一个像localhost:3000/room/xPOgk21523aqPW这样的扩展来实现。当我进行重定向时,我所在组件的名称是Player。我想要的是,当我将Homapage.js重定向到Player.js时,能够使用Player.js中的代码“xPOgk21