dossier stats are now in real-time again

This commit is contained in:
Timo Bejan 2022-02-24 13:58:07 +02:00
parent ab1cc8af9d
commit 711d758cff

View File

@ -26,29 +26,29 @@ public class DossierStatsService {
private final DossierService dossierService;
private final FileStatusService fileStatusService;
private Map<String, DossierStats> dossierStatsMap = new HashMap<>();
// private Map<String, DossierStats> dossierStatsMap = new HashMap<>();
@Scheduled(fixedDelay = 10000, initialDelay = 1000)
public void computeDossierStats() {
log.info("Computing Dossier Stats ... ");
long start = System.currentTimeMillis();
Map<String, DossierStats> dossierStatsComputeMap = new HashMap<>();
dossierService.getAllDossiers().stream()
.filter(d -> !d.getStatus().equals(DossierStatus.DELETED))
.forEach(d -> dossierStatsComputeMap.put(d.getId(), computeDossierStats(d)));
dossierStatsMap.clear();
dossierStatsMap = dossierStatsComputeMap;
log.info("Dossier Stats Computed in {}ms", System.currentTimeMillis() - start);
}
// @Scheduled(fixedDelay = 10000, initialDelay = 1000)
// public void computeDossierStats() {
// log.info("Computing Dossier Stats ... ");
// long start = System.currentTimeMillis();
// Map<String, DossierStats> dossierStatsComputeMap = new HashMap<>();
// dossierService.getAllDossiers().stream()
// .filter(d -> !d.getStatus().equals(DossierStatus.DELETED))
// .forEach(d -> dossierStatsComputeMap.put(d.getId(), computeDossierStats(d)));
// dossierStatsMap.clear();
// dossierStatsMap = dossierStatsComputeMap;
// log.info("Dossier Stats Computed in {}ms", System.currentTimeMillis() - start);
// }
public DossierStats getDossierStats(String dossierId) {
var stats = dossierStatsMap.get(dossierId);
if (stats == null) {
stats = computeDossierStats(dossierService.getDossierById(dossierId));
dossierStatsMap.put(dossierId, stats);
}
return stats;
// var stats = dossierStatsMap.get(dossierId);
// if (stats == null) {
// stats = computeDossierStats(dossierService.getDossierById(dossierId));
// dossierStatsMap.put(dossierId, stats);
// }
return computeDossierStats(dossierService.getDossierById(dossierId));;
}
private DossierStats computeDossierStats(DossierEntity dossierEntity) {