Downloaded files processing

apache_commons_compress
Terekhin Alexander 5 years ago
parent 2df96026bb
commit 7b26ce92fe
  1. 27
      src/main/java/me/bearns/fias/service/FiasUpdater.java

@ -7,6 +7,7 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Future;
import java.util.stream.Stream;
@ -60,11 +61,37 @@ public class FiasUpdater implements Updater {
//transaction from here
private void processUpdates(List<FiasVersion> updates, boolean reloadFlag, Long ... regions) {
//todo reload flag impl
updates.sort((o1, o2) -> Math.toIntExact(o1.getVersionId() - o2.getVersionId()));
//just for test
final Stream<Future<File>> stream = updates.stream().map(u -> downloader.download(reloadFlag ? u.getFiasCompleteXmlUrl() : u.getFiasDeltaXmlUrl()));
processDownloads(stream, regions);
//todo save updates
}
private void processDownloads(Stream<Future<File>> futureStream, Long ... regions) {
final Stream<File> fileStream = futureStream.map(fileFuture -> {
try {
return fileFuture.get();
} catch (Exception e) {
//todo log
return null;
}
});
//throw exception
assert fileStream.allMatch(Objects::nonNull);
fileStream.forEachOrdered(f -> {
//todo
});
}
}
Loading…
Cancel
Save