gpt4 book ai didi

scala - Akka 流保持空闲状态而不是抛出异常

转载 作者:行者123 更新时间:2023-12-01 03:19:14 25 4
gpt4 key购买 nike

我是 Akka/Scala 的新手,正在尝试调试下面的代码。当resultSetParser有一个异常,它不会抛出它。相反,使用此代码的服务永远处于空闲状态。

如何让我的服务抛出异常而不是永远等待流?有没有类似 watchException() 的东西Akka 中的函数,我可以在 watchTermination() 之后立即调用让它在处理流时抛出它看到的异常?

val chunkSource: Source[ChunkStreamPart, NotUsed] =
Source
.fromIterator(() => resultSetParser(resultSet) map ChunkStreamPart.apply)
.watchTermination()((mat : NotUsed, fut : Future[Done]) => {
watchTermination(fut)
mat
})
val chunkEntity = Chunked(ContentTypes.`application/json`, chunkSource)

最佳答案

您是否尝试过使用 recover ?

例如(未测试):

Source
.fromIterator(() => resultSetParser(resultSet) map ChunkStreamPart.apply)
.recover{
case _: RuntimeException => ??? /* Return ChunkStreamPart here */
}

关于scala - Akka 流保持空闲状态而不是抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47104953/

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