Compare commits
No commits in common. "1f14a06cc85d88113ffaeedda34df6ac3fc9cfa8" and "a3dafedb27a30ffa36ba0c37edea96aea4e639df" have entirely different histories.
1f14a06cc8
...
a3dafedb27
10 changed files with 16 additions and 66 deletions
|
|
@ -65,7 +65,6 @@ ct.load-dir=/opt/app/reports
|
||||||
|
|
||||||
# min
|
# min
|
||||||
ct.monitoring-interval=${MONITORING_INTERVAL:15}
|
ct.monitoring-interval=${MONITORING_INTERVAL:15}
|
||||||
ct.monitoring-membercodes=${MONITORING_MEMBERCODES:0001XX,0001BB}
|
|
||||||
# days
|
# days
|
||||||
ct.update-flags-cron-expression=${UPDATE_FLAGS_CRON_EXPRESSION:0 25 18 * * *}
|
ct.update-flags-cron-expression=${UPDATE_FLAGS_CRON_EXPRESSION:0 25 18 * * *}
|
||||||
ct.new-flags-cron-expression=${NEW_FLAGS_CRON_EXPRESSION:0 25 18 * * *}
|
ct.new-flags-cron-expression=${NEW_FLAGS_CRON_EXPRESSION:0 25 18 * * *}
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,6 @@ SIGNALS_USER=0001ZZ000001
|
||||||
|
|
||||||
# min
|
# min
|
||||||
MONITORING_INTERVAL=15
|
MONITORING_INTERVAL=15
|
||||||
MONITORING_MEMBERCODES=0001XX,0001BB
|
|
||||||
# days
|
# days
|
||||||
DAYS_TO_UPDATE_FLAGS=30
|
DAYS_TO_UPDATE_FLAGS=30
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,6 @@ services:
|
||||||
- SIGNALS_TOKEN=${SIGNALS_TOKEN}
|
- SIGNALS_TOKEN=${SIGNALS_TOKEN}
|
||||||
- SIGNALS_USER=${SIGNALS_USER}
|
- SIGNALS_USER=${SIGNALS_USER}
|
||||||
- MONITORING_INTERVAL=${MONITORING_INTERVAL}
|
- MONITORING_INTERVAL=${MONITORING_INTERVAL}
|
||||||
- MONITORING_MEMBERCODES=${MONITORING_MEMBERCODES}
|
|
||||||
- UPDATE_FLAGS_CRON_EXPRESSION=${UPDATE_FLAGS_CRON_EXPRESSION}
|
- UPDATE_FLAGS_CRON_EXPRESSION=${UPDATE_FLAGS_CRON_EXPRESSION}
|
||||||
- NEW_FLAGS_CRON_EXPRESSION=${NEW_FLAGS_CRON_EXPRESSION}
|
- NEW_FLAGS_CRON_EXPRESSION=${NEW_FLAGS_CRON_EXPRESSION}
|
||||||
- UPDATE_FIDS_CRON_EXPRESSION=${UPDATE_FIDS_CRON_EXPRESSION}
|
- UPDATE_FIDS_CRON_EXPRESSION=${UPDATE_FIDS_CRON_EXPRESSION}
|
||||||
|
|
|
||||||
14
pom.xml
14
pom.xml
|
|
@ -10,7 +10,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>ru.nbch</groupId>
|
<groupId>ru.nbch</groupId>
|
||||||
<artifactId>credit-tracker</artifactId>
|
<artifactId>credit-tracker</artifactId>
|
||||||
<version>2.21.14</version>
|
<version>2.21.12</version>
|
||||||
<name>credit_tracker</name>
|
<name>credit_tracker</name>
|
||||||
<description>Credit Tracker Application</description>
|
<description>Credit Tracker Application</description>
|
||||||
|
|
||||||
|
|
@ -18,9 +18,10 @@
|
||||||
<java.version>21</java.version>
|
<java.version>21</java.version>
|
||||||
<git.info.prefix>git_info</git.info.prefix>
|
<git.info.prefix>git_info</git.info.prefix>
|
||||||
<git.info.filename>git.properties</git.info.filename>
|
<git.info.filename>git.properties</git.info.filename>
|
||||||
<registry.url>nexus-dev.nbki.msk</registry.url>
|
<registry.url>10.230.238.56:5000</registry.url>
|
||||||
<jar.main.name>main</jar.main.name>
|
<jar.main.name>main</jar.main.name>
|
||||||
<jar.monitoring.name>monitoring</jar.monitoring.name>
|
<jar.monitoring.name>monitoring</jar.monitoring.name>
|
||||||
|
<!-- <registry.url>rh8-vm3.nbki.msk:5000</registry.url>-->
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
@ -72,11 +73,6 @@
|
||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.codehaus.janino</groupId>
|
|
||||||
<artifactId>janino</artifactId>
|
|
||||||
<version>3.1.12</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ch.qos.logback</groupId>
|
<groupId>ch.qos.logback</groupId>
|
||||||
<artifactId>logback-core</artifactId>
|
<artifactId>logback-core</artifactId>
|
||||||
|
|
@ -165,8 +161,8 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<images>
|
<images>
|
||||||
<image>
|
<image>
|
||||||
<name>nexus-dev.nbki.msk/${project.artifactId}:${project.version}</name>
|
<name>${project.artifactId}:${project.version}</name>
|
||||||
<!-- <registry>${registry.url}</registry>-->
|
<registry>${registry.url}</registry>
|
||||||
<build>
|
<build>
|
||||||
<dockerFile>${project.basedir}/Dockerfile</dockerFile>
|
<dockerFile>${project.basedir}/Dockerfile</dockerFile>
|
||||||
<assembly>
|
<assembly>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.config.settings;
|
package ru.nbch.credit_tracker.config.settings;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
@ -34,7 +33,6 @@ public class CreditTrackerSettings {
|
||||||
private Long maxXmlFileSize;
|
private Long maxXmlFileSize;
|
||||||
private String loadDir;
|
private String loadDir;
|
||||||
private Long monitoringInterval;
|
private Long monitoringInterval;
|
||||||
private List<String> monitoringMembercodes;
|
|
||||||
private String updateFlagsCronExpression;
|
private String updateFlagsCronExpression;
|
||||||
private Integer daysToUpdateFlags;
|
private Integer daysToUpdateFlags;
|
||||||
private Long daysToUpdateFids;
|
private Long daysToUpdateFids;
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ public interface UserPackageMapper {
|
||||||
List<UserPackage> findUserPackages(@Param("userId") String userId, @Param("statuses") List<String> status);
|
List<UserPackage> findUserPackages(@Param("userId") String userId, @Param("statuses") List<String> status);
|
||||||
|
|
||||||
List<UserPackage> findAllPackagesByStatus(@Param("statuses") String... statuses);
|
List<UserPackage> findAllPackagesByStatus(@Param("statuses") String... statuses);
|
||||||
List<UserPackage> findOnMonitoringByMemberCode(List<String> membercodes);
|
|
||||||
|
|
||||||
List<UserPackage> findAllPackagesByUserId(@Param("userId") String userId);
|
List<UserPackage> findAllPackagesByUserId(@Param("userId") String userId);
|
||||||
UserPackage findByPackageName(@Param("packageName") String packageName);
|
UserPackage findByPackageName(@Param("packageName") String packageName);
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.
|
||||||
import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.Signal;
|
import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.Signal;
|
||||||
import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.Signals;
|
import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.Signals;
|
||||||
import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.Subject;
|
import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.Subject;
|
||||||
|
import ru.nbch.credit_tracker.enums.Status;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.FlagDetailMapper;
|
import ru.nbch.credit_tracker.mapper.signal.FlagDetailMapper;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||||
import ru.nbch.credit_tracker.service.signal.HitsService;
|
import ru.nbch.credit_tracker.service.signal.HitsService;
|
||||||
|
|
@ -79,7 +80,6 @@ public class MonitoringService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
log.debug("Running scheduler for monitoring by membercode: {}", config.getMonitoringMembercodes());
|
|
||||||
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new CustomizableThreadFactory("monitoring-"));
|
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new CustomizableThreadFactory("monitoring-"));
|
||||||
long period = config.getMonitoringInterval() != null ? config.getMonitoringInterval() : 15;
|
long period = config.getMonitoringInterval() != null ? config.getMonitoringInterval() : 15;
|
||||||
scheduler.scheduleAtFixedRate(this::monitor, 0, period, TimeUnit.MINUTES);
|
scheduler.scheduleAtFixedRate(this::monitor, 0, period, TimeUnit.MINUTES);
|
||||||
|
|
@ -88,7 +88,8 @@ public class MonitoringService {
|
||||||
private void monitor() {
|
private void monitor() {
|
||||||
try {
|
try {
|
||||||
log.info("Start monitoring");
|
log.info("Start monitoring");
|
||||||
List<UserPackage> packages = userPackageMapper.findOnMonitoringByMemberCode(config.getMonitoringMembercodes());
|
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.ON_MONITORING.name(),
|
||||||
|
Status.PROCESSING_REPEATED.name());
|
||||||
for (UserPackage userPackage : packages) {
|
for (UserPackage userPackage : packages) {
|
||||||
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]");
|
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]");
|
||||||
processPackage(userPackage);
|
processPackage(userPackage);
|
||||||
|
|
|
||||||
|
|
@ -248,8 +248,7 @@ public class SignalRestService {
|
||||||
|
|
||||||
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(headers);
|
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(headers);
|
||||||
|
|
||||||
ResponseEntity<String> response = exchangeWithTiming(
|
ResponseEntity<String> response = restTemplate.exchange(
|
||||||
"onlinereport",
|
|
||||||
url,
|
url,
|
||||||
HttpMethod.GET,
|
HttpMethod.GET,
|
||||||
requestEntity,
|
requestEntity,
|
||||||
|
|
@ -284,12 +283,12 @@ public class SignalRestService {
|
||||||
|
|
||||||
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(headers);
|
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(headers);
|
||||||
|
|
||||||
ResponseEntity<byte[]> response = exchangeWithTiming(
|
ResponseEntity<byte[]> response = restTemplate.exchange(
|
||||||
"onlinedownload",
|
url,
|
||||||
url,
|
HttpMethod.GET,
|
||||||
HttpMethod.GET,
|
requestEntity,
|
||||||
requestEntity,
|
byte[].class
|
||||||
byte[].class);
|
);
|
||||||
Path targetFilePathWithExt = null;
|
Path targetFilePathWithExt = null;
|
||||||
if (response.getHeaders().getContentType().equals(MEDIA_TYPE_GZIP)) {
|
if (response.getHeaders().getContentType().equals(MEDIA_TYPE_GZIP)) {
|
||||||
Path folder = Path.of(config.getLoadDir(),
|
Path folder = Path.of(config.getLoadDir(),
|
||||||
|
|
@ -334,21 +333,4 @@ public class SignalRestService {
|
||||||
return "unknown error";
|
return "unknown error";
|
||||||
return "%s: %s".formatted(response.getError().getName(), response.getError().getDescription());
|
return "%s: %s".formatted(response.getError().getName(), response.getError().getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> ResponseEntity<T> exchangeWithTiming(
|
|
||||||
String name,
|
|
||||||
String url,
|
|
||||||
HttpMethod method,
|
|
||||||
HttpEntity<?> requestEntity,
|
|
||||||
Class<T> responseType
|
|
||||||
) {
|
|
||||||
long start = System.nanoTime();
|
|
||||||
|
|
||||||
try {
|
|
||||||
return restTemplate.exchange(url, method, requestEntity, responseType);
|
|
||||||
} finally {
|
|
||||||
long durationMs = (System.nanoTime() - start) / 1_000_000;
|
|
||||||
log.info("REST [{}] {} {} took {} ms", name, method, url, durationMs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<if condition='isDefined("MONITORING_MEMBERCODES") && !property("MONITORING_MEMBERCODES").isEmpty()'>
|
|
||||||
<then>
|
|
||||||
<property name="monitoringMemberCodesSuffix" value="-${MONITORING_MEMBERCODES}" />
|
|
||||||
</then>
|
|
||||||
</if>
|
|
||||||
|
|
||||||
<property name="basedir" value="${user.dir}" />
|
<property name="basedir" value="${user.dir}" />
|
||||||
<property name="logFile" value="${basedir}/logs/app/credit-tracker-${APP_JAR}${monitoringMemberCodesSuffix:-}.log" />
|
<property name="logFile" value="${basedir}/logs/app/credit-tracker-${APP_JAR}.log" />
|
||||||
<property name="logFileNamePattern" value="${basedir}/logs/app/credit-tracker-${APP_JAR}.%i.log" />
|
<property name="logFileNamePattern" value="${basedir}/logs/app/credit-tracker-${APP_JAR}.%i.log" />
|
||||||
<property name="jsonLogFile" value="${basedir}/logs/json/credit-tracker-json.log" />
|
<property name="jsonLogFile" value="${basedir}/logs/json/credit-tracker-json.log" />
|
||||||
<property name="jsonLogFileNamePattern" value="${basedir}/logs/json/credit-tracker-json.%d{yyyy-MM-dd}.%i.gz" />
|
<property name="jsonLogFileNamePattern" value="${basedir}/logs/json/credit-tracker-json.%d{yyyy-MM-dd}.%i.gz" />
|
||||||
|
|
|
||||||
|
|
@ -229,24 +229,6 @@
|
||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findOnMonitoringByMemberCode" resultMap="packageDataResultMap">
|
|
||||||
SELECT id,
|
|
||||||
membercode,
|
|
||||||
package_name,
|
|
||||||
created_at,
|
|
||||||
status,
|
|
||||||
deactivated_at,
|
|
||||||
last_downloaded_report,
|
|
||||||
monitoring_at,
|
|
||||||
reject_status,
|
|
||||||
signal_types
|
|
||||||
FROM signals_user_packages
|
|
||||||
WHERE status in ('ON_MONITORING', 'PROCESSING_REPEATED') and LEFT(membercode, 6) in
|
|
||||||
<foreach collection="membercodes" item="membercode" separator="," open="(" close=")">
|
|
||||||
#{membercode}
|
|
||||||
</foreach>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="findByMemberCodeAndPackageName" resultMap="packageDataResultMap">
|
<select id="findByMemberCodeAndPackageName" resultMap="packageDataResultMap">
|
||||||
SELECT id,
|
SELECT id,
|
||||||
membercode,
|
membercode,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue