From b14528476e340897071e8c8b4269cb7401e6b33e Mon Sep 17 00:00:00 2001 From: Rodrigo Verdiani Date: Sat, 28 Mar 2026 08:24:17 -0300 Subject: [PATCH] refactor: skip completed jobs in file import command --- .../content/queue/consumer/FileImportConsumer.java | 9 +++++++++ .../magamochi/content/service/ContentImportService.java | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/com/magamochi/content/queue/consumer/FileImportConsumer.java b/src/main/java/com/magamochi/content/queue/consumer/FileImportConsumer.java index 1f85bff..96e2e35 100644 --- a/src/main/java/com/magamochi/content/queue/consumer/FileImportConsumer.java +++ b/src/main/java/com/magamochi/content/queue/consumer/FileImportConsumer.java @@ -21,6 +21,15 @@ public class FileImportConsumer { @RabbitListener(queues = "${queues.file-import}") public void receiveFileImportCommand(FileImportCommand command) { log.info("Received file import command: {}", command); + + if (nonNull(command.mangaImportJobId())) { + var job = contentImportService.findImportJob(command.mangaImportJobId()); + if (job.isPresent() && job.get().getStatus().equals(ImportJobStatus.SUCCESS)) { + log.info("Job {} already completed, skipping", command.mangaImportJobId()); + return; + } + } + try { contentImportService.importFile( command.mangaContentProviderId(), command.filename(), command.mangaImportJobId()); diff --git a/src/main/java/com/magamochi/content/service/ContentImportService.java b/src/main/java/com/magamochi/content/service/ContentImportService.java index 02b73a5..d826c07 100644 --- a/src/main/java/com/magamochi/content/service/ContentImportService.java +++ b/src/main/java/com/magamochi/content/service/ContentImportService.java @@ -208,6 +208,10 @@ public class ContentImportService { } } + public Optional findImportJob(Long id) { + return mangaImportJobRepository.findById(id); + } + public List getImportJobs() { return mangaImportJobRepository.findAll(Sort.by(Sort.Direction.DESC, "updatedAt")).stream() .map(MangaImportJobDTO::from)