RED-4928: Added timing of report generation when on debug level

This commit is contained in:
Viktor Seifert 2022-08-11 15:06:08 +02:00
parent 1d44820a8c
commit 6a21722fcc

View File

@ -1,5 +1,19 @@
package com.iqser.red.service.peristence.v1.server.service;
import static java.util.stream.Collectors.toList;
import java.time.Duration;
import java.time.Instant;
import java.util.Comparator;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
@ -7,24 +21,15 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Inter
import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReport;
import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReportRequest;
import com.iqser.red.service.persistence.service.v1.api.model.license.ReportData;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.Value;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.time.Instant;
import java.util.Comparator;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import static java.util.stream.Collectors.toList;
import lombok.extern.slf4j.Slf4j;
@Service
@RequiredArgsConstructor
@Slf4j
public class LicenseReportService {
private final FileStatusService fileStatusService;
@ -38,6 +43,13 @@ public class LicenseReportService {
public LicenseReport getLicenseReport(LicenseReportRequest licenseReportRequest, int offset, int limit) {
log.info("Generating licence-report");
Instant start = null;
if (log.isDebugEnabled()) {
start = Instant.now();
}
if (StringUtils.isEmpty(licenseReportRequest.getRequestId())) {
licenseReportRequest.setRequestId(UUID.randomUUID().toString());
}
@ -60,12 +72,22 @@ public class LicenseReportService {
licenseReport.setEndDate(cachedReportData.getEndDate());
licenseReport.setRequestId(licenseReportRequest.getRequestId());
if (start != null) {
log.debug("getLicenceReport took {} to process", Duration.between(start, Instant.now()).toString());
}
return licenseReport;
}
private CachedReportData loadReport(LicenseReportRequest licenseReportRequest) {
log.debug("No licence-report found in cache, generating new report");
Instant start = null;
if (log.isDebugEnabled()) {
start = Instant.now();
}
List<String> dossierIds = licenseReportRequest.getDossierIds();
if (CollectionUtils.isEmpty(licenseReportRequest.getDossierIds())) {
dossierIds = dossierService.getAllDossiers().stream().map(DossierEntity::getId).collect(toList());
@ -98,6 +120,10 @@ public class LicenseReportService {
.sorted(Comparator.comparing(ReportData::getFileName))
.collect(toList());
if (start != null) {
log.debug("loadReport took {} to process", Duration.between(start, Instant.now()).toString());
}
return new CachedReportData(data,
dossierIds.size(),
totalNumberOfAnalyses.get(),