gpt4 book ai didi

kotlin - Quarkus:执行并行unis

转载 作者:行者123 更新时间:2023-12-02 12:55:20 30 4
gpt4 key购买 nike

在quarkus / kotlin应用程序中,我想同时启动多个数据库请求。我是quarky的新手,我不确定自己做对的事情是否正确:

    val uni1 = Uni.createFrom().item(repo1).onItem().apply { it.request() }
val uni2 = Uni.createFrom().item(repo2).onItem().apply { it.request() }

return Uni.combine().all()
.unis(uni1, uni2)
.asTuple()
.onItem()
.apply { tuple ->
Result(tuple.item1, tuple.item2) }
.await()
.indefinitely()
request()真的可以并行制作吗?在quarkus中是正确的方法吗?

最佳答案

是的,您的代码是正确的。Uni.combine().all()同时运行所有传递的Unis。所有Unis都已完成(发出结果)后,您将获得元组(包含单个结果)。
您可以从代码中删除元组步骤,而改为使用combineWith
最后,请注意,如果Uni之一未完成(无论出于何种原因),则await().indefinitely()永远阻止调用者线程。我强烈建议使用await().atMost(...)

关于kotlin - Quarkus:执行并行unis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63843627/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com