From 4451c07f0220ddacd3ebec3cefe032ad495ebad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Tue, 11 Jun 2024 10:40:21 +0200 Subject: [PATCH] RED-9250: Do not run any scheduled jobs in parallel --- .../service/job/AnalysisFlagCalculationSchedulerJob.java | 2 ++ .../v1/processor/service/job/AutomaticAnalysisJob.java | 2 ++ .../v1/processor/service/job/DeletedFilesCleanupJob.java | 4 ++-- .../v1/processor/service/job/DownloadCleanupJob.java | 2 ++ .../management/v1/processor/service/job/DownloadReadyJob.java | 2 ++ .../v1/processor/service/job/KeyCloakUserSyncJob.java | 2 ++ .../v1/processor/service/job/SendNotificationEmailJob.java | 2 ++ .../v1/processor/service/job/SyncUserPermissionsJob.java | 2 ++ 8 files changed, 16 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AnalysisFlagCalculationSchedulerJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AnalysisFlagCalculationSchedulerJob.java index 1b48d94d7..4b1c80f4d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AnalysisFlagCalculationSchedulerJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AnalysisFlagCalculationSchedulerJob.java @@ -5,6 +5,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.utils.Te import java.time.OffsetDateTime; import java.util.Set; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; @@ -27,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; @Service @RequiredArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) +@DisallowConcurrentExecution /* * This Job checks if there might be a change in the analysis flags and then schedules a flag calculation using a queue to balance the load. */ public class AnalysisFlagCalculationSchedulerJob implements Job { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AutomaticAnalysisJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AutomaticAnalysisJob.java index 970b1a173..3bca9e1e5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AutomaticAnalysisJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AutomaticAnalysisJob.java @@ -6,6 +6,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.springframework.amqp.core.AmqpAdmin; @@ -29,6 +30,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service @RequiredArgsConstructor +@DisallowConcurrentExecution public class AutomaticAnalysisJob implements Job { private final AmqpAdmin amqpAdmin; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DeletedFilesCleanupJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DeletedFilesCleanupJob.java index 3c00b8a10..c94958700 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DeletedFilesCleanupJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DeletedFilesCleanupJob.java @@ -4,6 +4,7 @@ import java.time.OffsetDateTime; import java.util.List; import com.iqser.red.service.persistence.management.v1.processor.service.FileDeletionService; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.springframework.stereotype.Service; @@ -11,7 +12,6 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.service.ApplicationConfigService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; import com.iqser.red.service.persistence.management.v1.processor.utils.TenantUtils; import com.knecon.fforesight.tenantcommons.TenantContext; @@ -23,11 +23,11 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @RequiredArgsConstructor @Service +@DisallowConcurrentExecution public class DeletedFilesCleanupJob implements Job { private final DossierService dossierService; private final FileStatusService fileStatusService; - private final FileService fileService; private final FileDeletionService fileDeletionService; private final ApplicationConfigService applicationConfigService; private final TenantProvider tenantProvider; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadCleanupJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadCleanupJob.java index 0a81e3998..8c4e1f459 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadCleanupJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadCleanupJob.java @@ -4,6 +4,7 @@ import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.List; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.springframework.stereotype.Service; @@ -22,6 +23,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @RequiredArgsConstructor @Service +@DisallowConcurrentExecution public class DownloadCleanupJob implements Job { private final DownloadStatusPersistenceService downloadStatusPersistenceService; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadReadyJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadReadyJob.java index cacfa6587..eaae4b3a6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadReadyJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadReadyJob.java @@ -12,6 +12,7 @@ import com.knecon.fforesight.tenantcommons.TenantProvider; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.springframework.stereotype.Service; @@ -19,6 +20,7 @@ import org.springframework.stereotype.Service; @Slf4j @RequiredArgsConstructor @Service +@DisallowConcurrentExecution public class DownloadReadyJob implements Job { private final DownloadStatusPersistenceService downloadStatusPersistenceService; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/KeyCloakUserSyncJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/KeyCloakUserSyncJob.java index a1289e7a4..a649d5997 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/KeyCloakUserSyncJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/KeyCloakUserSyncJob.java @@ -1,5 +1,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.job; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; @@ -13,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service @RequiredArgsConstructor +@DisallowConcurrentExecution public class KeyCloakUserSyncJob implements Job { private final KeyCloakUserSyncService keyCloakUserSyncService; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/SendNotificationEmailJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/SendNotificationEmailJob.java index 6f8c2924c..70355de3d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/SendNotificationEmailJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/SendNotificationEmailJob.java @@ -4,6 +4,7 @@ import java.time.DayOfWeek; import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.springframework.stereotype.Service; @@ -22,6 +23,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @RequiredArgsConstructor @Service +@DisallowConcurrentExecution public class SendNotificationEmailJob implements Job { private final NotificationEmailService notificationEmailService; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/SyncUserPermissionsJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/SyncUserPermissionsJob.java index 9112b6895..aded09a69 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/SyncUserPermissionsJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/SyncUserPermissionsJob.java @@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.job; import static com.iqser.red.service.persistence.management.v1.processor.utils.TenantUtils.isTenantReadyForPersistence; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; @@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service @RequiredArgsConstructor +@DisallowConcurrentExecution public class SyncUserPermissionsJob implements Job { private final CustomPermissionService customPermissionService;