Предположим, у меня есть приложение, которое загружает файлы с сервера и загружает их на другой сервер.
Загружаемые файлы не обязательно существуют на сервере.
Итак, когда файл не существует, я хочу пропустить его, не переходить к его загрузке и убедиться, что загружены / загружены только существующие файлы.
(т.е. ни одно исключение при загрузке не должно останавливать все остальные процессы загрузки и выгрузки)
Будущее должно быть либо успешным, без результатов (в единицах), либо с исключением с ошибочным путем.
Какой стандартный способ справиться с этой ситуацией?
def downloadFile(path: String): Future[DownloadFile]
def uploadFile(file: DownloadFile): Future[Unit]
Future.sequence(
paths.map { path =>
for {
downloadedFile <- downloadFile(path)
_ <- uploadFile(downloadedFile)
} yield Unit
}
)