Skip to content

Commit

Permalink
Merge pull request #44
Browse files Browse the repository at this point in the history
merge dev to test
  • Loading branch information
jvk88511334 authored Apr 16, 2024
2 parents 05c99d7 + 2ffec9a commit 707311f
Showing 1 changed file with 21 additions and 31 deletions.
52 changes: 21 additions & 31 deletions src/main/java/fr/abes/logskbart/kafka/LogsListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@
import java.time.ZoneId;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.TimeUnit;

@Slf4j
@Service
Expand All @@ -33,15 +31,12 @@ public class LogsListener {

private final LogKbartRepository repository;

private final Map<String, Timestamp> lastTimeStampByFilename;

private final EmailService emailService;

public LogsListener(ObjectMapper mapper, UtilsMapper logsMapper, LogKbartRepository repository, Map<String, Timestamp> lastTimeStampByFilename, EmailService emailService) {
public LogsListener(ObjectMapper mapper, UtilsMapper logsMapper, LogKbartRepository repository, EmailService emailService) {
this.mapper = mapper;
this.logsMapper = logsMapper;
this.repository = repository;
this.lastTimeStampByFilename = lastTimeStampByFilename;
this.emailService = emailService;
}

Expand Down Expand Up @@ -83,17 +78,6 @@ public void listenInfoKbart2KafkaAndErrorKbart2Kafka(ConsumerRecord<String, Stri
// vérifie la présence de fichiers obsolètes dans le répertoire tempLogLocal et les supprime le cas échéant
deleteOldLocalTempLog();

if (lastTimeStampByFilename.get(logKbart.getPackageName()) != null) {
Timestamp LastTimestampPlusTwoMinutes = new Timestamp(lastTimeStampByFilename.get(logKbart.getPackageName()).getTime() + TimeUnit.MINUTES.toMillis(2 ));

// Si ça fait 2min qu'on n'a pas reçu de message pour ce fichier
if (currentTimestamp.after(LastTimestampPlusTwoMinutes)) {
log.debug("Suppression fichier " + logKbart.getPackageName() + " si existe");
Files.deleteIfExists(of);
}
}
lastTimeStampByFilename.put(logKbart.getPackageName(), currentTimestamp);

String line = nbLineOrigine + "\t" + logKbart.getMessage();

if (Files.exists(of)) {
Expand All @@ -113,20 +97,26 @@ public void listenInfoKbart2KafkaAndErrorKbart2Kafka(ConsumerRecord<String, Stri
throw new RuntimeException(e);
}
}
} else if (logKbart.getLevel().toString().equals("INFO") && logKbart.getMessage().contains("Traitement terminé pour fichier " + logKbart.getPackageName())) {
// Envoi du mail uniquement si le fichier temporaire a été créé
if (Files.exists(of)) {
Path tempPathTarget = Path.of("tempLog");
if(!Files.exists(tempPathTarget)) {
Files.createDirectory(tempPathTarget);
} else if (logKbart.getLevel().toString().equals("INFO")) {
// On verifie que le traitement commence pour supp les anciens logs du .bad (ps message venant de kbart2kafka)
if (logKbart.getMessage().contains("Debut envois kafka de : " + logKbart.getPackageName())){
Files.deleteIfExists(of);
// On verifie que le traitement est terminé (ps message venant de best-ppn-api ou kbart2kafka)
}else if( (logKbart.getMessage().contains("Traitement terminé pour fichier " + logKbart.getPackageName())) || (logKbart.getMessage().contains("Traitement refusé du fichier " + logKbart.getPackageName())) ) {
// Envoi du mail uniquement si le fichier temporaire a été créé
if (Files.exists(of)) {
Path tempPathTarget = Path.of("tempLog");
if (!Files.exists(tempPathTarget)) {
Files.createDirectory(tempPathTarget);
}
// Copie le fichier existant vers le répertoire temporaire
Path target = Path.of("tempLog" + File.separator + logKbart.getPackageName().replace(".tsv", ".bad"));
// Déplacement du fichier
Files.copy(of, target, StandardCopyOption.REPLACE_EXISTING);
log.info("Fichier de log transféré dans le dossier temporaire.");

emailService.sendMailWithAttachment(logKbart.getPackageName(), of);
}
// Copie le fichier existant vers le répertoire temporaire
Path target = Path.of("tempLog" + File.separator + logKbart.getPackageName().replace(".tsv", ".bad"));
// Déplacement du fichier
Files.copy(of, target, StandardCopyOption.REPLACE_EXISTING);
log.info("Fichier de log transféré dans le dossier temporaire.");

emailService.sendMailWithAttachment(logKbart.getPackageName(), of);
}
}
}
Expand All @@ -146,7 +136,7 @@ public void deleteOldLocalTempLog() throws IOException {
Date dateNow = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());
long interval = dateNow.getTime() - dateOfLastModification.getTime();
if (interval > 600000) {
fileToCheck.delete();
Files.deleteIfExists(fileToCheck.toPath());
log.debug("Fichier obsolète supprimé : " + nameFile);
}
}
Expand Down

0 comments on commit 707311f

Please sign in to comment.