From 27c6e5188c0ca4c54fd4fd8e7a72dbe58b6a5ff4 Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Tue, 24 Jun 2025 16:08:23 +0300 Subject: [PATCH] Added sheduling for report loading --- .../nbch/credit_tracker/CreditTrackerApplication.java | 5 ++++- .../config/settings/CreditTrackerSettings.java | 1 + .../credit_tracker/service/MonitoringService.java | 11 ++++++++++- .../resources/mybatis/mapper/signal/SignalMapper.xml | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java b/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java index bee1ecb..acc8cd1 100644 --- a/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java +++ b/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java @@ -2,12 +2,15 @@ package ru.nbch.credit_tracker; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication public class CreditTrackerApplication { public static void main(String[] args) { - SpringApplication.run(CreditTrackerApplication.class, args); + ConfigurableApplicationContext ctx = SpringApplication.run(CreditTrackerApplication.class, args); +// MonitoringService monitoringService = ctx.getBean(MonitoringService.class); +// monitoringService.run(); // TODO uncomment } } 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 18494a2..ddb7955 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 @@ -27,5 +27,6 @@ public class CreditTrackerSettings { private String signalsuser; private String loadDir; + private Long monitoringInterval; } diff --git a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java index 8bed74e..50633a1 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java @@ -20,6 +20,9 @@ import java.io.FileOutputStream; import java.nio.charset.Charset; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import java.util.zip.GZIPInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -43,7 +46,13 @@ public class MonitoringService { this.config = config; } - public void monitor() { + public void run() { + ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); + long period = config.getMonitoringInterval() != null ? config.getMonitoringInterval() : 15; + scheduler.scheduleAtFixedRate(this::monitor, 0, period, TimeUnit.MINUTES); + } + + private void monitor() { List packages = signalService.findPackagesOnMonitoring(); for (SignalService.PackageData packageData : packages) { SgnlOnlineReport onlineReports = signalRestService.getReports(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName()); diff --git a/src/main/resources/mybatis/mapper/signal/SignalMapper.xml b/src/main/resources/mybatis/mapper/signal/SignalMapper.xml index f2f89a6..09d9601 100644 --- a/src/main/resources/mybatis/mapper/signal/SignalMapper.xml +++ b/src/main/resources/mybatis/mapper/signal/SignalMapper.xml @@ -22,7 +22,7 @@ - +