Added sheduling for report loading

This commit is contained in:
Mikhail Trofimov 2025-06-24 16:08:23 +03:00
parent b3102a17f8
commit 27c6e5188c
4 changed files with 16 additions and 3 deletions

View file

@ -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
}
}

View file

@ -27,5 +27,6 @@ public class CreditTrackerSettings {
private String signalsuser;
private String loadDir;
private Long monitoringInterval;
}

View file

@ -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<SignalService.PackageData> packages = signalService.findPackagesOnMonitoring();
for (SignalService.PackageData packageData : packages) {
SgnlOnlineReport onlineReports = signalRestService.getReports(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName());

View file

@ -22,7 +22,7 @@
<result property="packageName" column="package_name" />
<result property="createdAt" column="created_at"/>
<result property="status" column="status"/>
<result property="last_downloaded_report" column="lastDownloadedReport" />
<result property="lastDownloadedReport" column="last_downloaded_report" />
</resultMap>
<select id="isPackageNotUnique" resultType="boolean">