У меня есть актер с двумя сообщениями, первый из которых отвечает за вставку данных в mongoDB, а второй - за вставку данных вasticsearch, InserInMongo и InserInES, а именно будет случай, когда операция вставки mongodb завершится неудачно или операция вставки ES завершится неудачно из-закакое-то исключение, и я делаю что-то вроде этого
try {
val mongoFuture: Future[Boolean] = ask(artGroupPersistenceActor, PersistArtGroupInMongo(artGroup)).mapTo[Boolean]
val esFuture: Future[Boolean] = ask(artGroupPersistenceActor, PersistArtGroupInES(artGroup)).mapTo[Boolean]
val resultMongo = Await.result(mongoFuture, timeout.duration)
log.debug("store: Record Inserted inserted in mongoDB {}", resultMongo)
val resultES = Await.result(esFuture, timeout.duration)
log.debug("store: Record Inserted in ES {}", resultES)
}
catch {
case e: Exception =>
log.error("store:While inserting an artgroup Exception in artGroupPersistenceActor actor", e)
throw e
}
здесь, я хочу, если mongoFuture не удался, тогда я ловлю его исключение, и оно должно продолжаться с esFuture
или, если оба будущего провалились, я получаю обаисключение, как я могу заархивировать этот сценарий?