私は次のようにトピックサブスクライバーを持っていlagom
ます
fooService.fooTopic().subscribe
.atLeastOnce(
Flow[fooMsg].map {
case fooMsg(_) =>
foo()
case a =>
println(a)
}.async.map{ _ =>
Done
}
)
このトピックをサブスクライブするatLeastOnce
には、メソッドとして使用します。例外が発生した場合は、フローを再開/再試行してください。通常の例外をスローすると、通常どおり再試行し続ける可能性があります
private def foo() = {
throw new RuntimeException("testing error")
}
しかし、将来例外が発生した場合、どのように試してもフローは再起動しません。将来的に例外を処理しようとする私の試みの1つです
private def foo() = {
val test: Future[Int] = Future(throw new RuntimeException("asd"))
val result = for {
y1 <- test
} yield (y1)
result.onComplete{
case Success(value) => println("SUCCESS")
case Failure(exception) => println(exception.getMessage)
throw exception
}
}
private def foo() = {
val test: Future[Int] = Future(throw new RuntimeException("asd"))
test.onComplete{
case Success(value) => println("SUCCESS")
case Failure(exception) => println(exception.getMessage)
throw exception
}
}
例外が表示されますが、Flow
自動的に再起動しません。で例外をどのように処理/スローする必要がありFuture
ますか?