Akka流保持空闲而不是抛出异常

时间:2017-11-03 21:58:25

标签: scala akka akka-stream akka-http

我是Akka / Scala的新手,我正在尝试调试下面的代码。当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) 之后调用它来抛出它在处理流时看到的异常?

ID   | VALUE
id_1 | 1, 2, 3, 4, 5
id_2 | 6, 7, 8, 9, 10
id_3 | 11, 12, 13, 14, 15

1 个答案:

答案 0 :(得分:2)

您是否尝试过使用recover

例如(未经测试):

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