From 5dc5e7249675d06aee648e7f6e5f36f6d082a3a3 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 6 Nov 2025 12:20:38 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3288 --- credit-tracker.properties | 2 +- docker_compose/credit_tracker_config.env | 2 +- .../config/settings/CreditTrackerSettings.java | 2 +- .../service/UpdatingFlagsService.java | 18 +++++++++--------- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/credit-tracker.properties b/credit-tracker.properties index e8241c1..9c901a7 100644 --- a/credit-tracker.properties +++ b/credit-tracker.properties @@ -66,7 +66,7 @@ ct.load-dir=/opt/app/reports # min ct.monitoring-interval=${MONITORING_INTERVAL:15} # days -ct.update-flags-interval=${UPDATE_FLAGS_INTERVAL:1} +ct.update-flags-cron-expression=${UPDATE_FLAGS_CRON_EXPRESSION:0 22 * * *} ct.days-to-update-flags=${DAYS_TO_UPDATE_FLAGS:30} ct.encoding=windows-1251 \ No newline at end of file diff --git a/docker_compose/credit_tracker_config.env b/docker_compose/credit_tracker_config.env index a974963..65694b7 100644 --- a/docker_compose/credit_tracker_config.env +++ b/docker_compose/credit_tracker_config.env @@ -71,7 +71,7 @@ SIGNALS_USER=0001ZZ000001 # min MONITORING_INTERVAL=15 # days -UPDATE_FLAGS_INTERVAL=1 +UPDATE_FLAGS_CRON_EXPRESSION=0 22 * * * DAYS_TO_UPDATE_FLAGS=30 diff --git a/src/main/java/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.java b/src/main/java/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.java index 9a59f0b..28e467f 100644 --- a/src/main/java/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.java +++ b/src/main/java/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.java @@ -29,7 +29,7 @@ public class CreditTrackerSettings { private Long maxXmlFileSize; private String loadDir; private Long monitoringInterval; - private Long updateFlagsInterval; + private String updateFlagsCronExpression; private Long daysToUpdateFlags; private String encoding; diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java index a5a7df3..b2a1bfe 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java @@ -3,12 +3,10 @@ package ru.nbch.credit_tracker.service; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.List; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; -import org.springframework.scheduling.concurrent.CustomizableThreadFactory; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; +import org.springframework.scheduling.support.CronTrigger; import org.springframework.stereotype.Service; import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; import ru.nbch.credit_tracker.entities.dto.UserPackage; @@ -28,7 +26,7 @@ public class UpdatingFlagsService { private final SignalRestService signalRestService; private final MonitoringErrorProcesingService monitoringErrorProcesingService; private final Long daysToUpdateFlags; - private final Long updateFlagsInterval; + private final String updateFlagsCronExpression; private final PhoneFidMapMapper phoneFidMapMapper; public UpdatingFlagsService(SignalService signalService, @@ -40,21 +38,23 @@ public class UpdatingFlagsService { this.signalRestService = signalRestService; this.monitoringErrorProcesingService = monitoringErrorProcesingService; this.daysToUpdateFlags = config.getDaysToUpdateFlags() != null ? config.getDaysToUpdateFlags() : 1; - this.updateFlagsInterval = config.getUpdateFlagsInterval() != null ? config.getUpdateFlagsInterval() : 1; + this.updateFlagsCronExpression = config.getUpdateFlagsCronExpression() != null ? config.getUpdateFlagsCronExpression() : "*/10 * * * * *"; this.phoneFidMapMapper = phoneFidMapMapper; } public void run() { - ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new CustomizableThreadFactory("updating-flags-")); - scheduler.scheduleAtFixedRate(this::update, 0, updateFlagsInterval, TimeUnit.DAYS); + ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); + scheduler.setPoolSize(1); + scheduler.initialize(); + scheduler.schedule(this::update, new CronTrigger(updateFlagsCronExpression)); } public void update() { log.info("Start updating flags"); List packages = signalService.findPackagesOnMonitoring(); for (UserPackage userPackage : packages) { - log.info("Check on updating flags for Package {}", userPackage.getPackageName()); MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() +"]"); + log.info("Check on updating flags for Package {}", userPackage.getPackageName()); boolean hasOldRow = phoneFidMapMapper.hasOldRow(userPackage.getId(), daysToUpdateFlags.intValue()); log.info("There are {} old rows", hasOldRow ? "exist" : "doesn't exist"); if (hasOldRow) {