update flags: days-to-update-flags

This commit is contained in:
ialbert 2026-01-23 10:48:47 +03:00
parent d133ac804d
commit 9d664898ff
4 changed files with 10 additions and 4 deletions

View file

@ -34,7 +34,7 @@ public class CreditTrackerSettings {
private String loadDir;
private Long monitoringInterval;
private String updateFlagsCronExpression;
private Long daysToUpdateFlags;
private Integer daysToUpdateFlags;
private Long daysToUpdateFids;
private String encoding;
private String dbVersion;

View file

@ -11,6 +11,7 @@ public interface PhonesMapMapper {
List<PhonesMap> searchedAtLessThan(@Param("daysCount") Integer daysCount, @Param("batchSize") int batchSize, @Param("lastId") Long lastId);
PhonesMap findByPhone(@Param("phone") Long phone);
List<PhonesMap> findEligibleForFlagsUpdate(@Param("lastId") Long lastId,
@Param("interval") Integer interval,
@Param("batchSize") Integer batchSize);
List<PhonesMap> findEligibleForFlagsInsert(@Param("lastId") Long lastId,
@Param("batchSize") Integer batchSize);

View file

@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.entities.app.PhonesMap;
import ru.nbch.credit_tracker.mapper.signal.PhonesMapMapper;
import ru.nbch.credit_tracker.service.task.impl.FlagsEnricher;
@ -24,12 +25,16 @@ public class UpdatingFlagsService {
private final static int BATCH_SIZE = 1000;
private final PhonesMapMapper phonesMapMapper;
private final FlagsEnricher flagsEnricherV2;
private final Integer updateDaysInterval;
private final AtomicBoolean insertIsRunning = new AtomicBoolean(false);
private final AtomicBoolean updateIsRunning = new AtomicBoolean(false);
public UpdatingFlagsService(PhonesMapMapper phonesMapMapper, FlagsEnricher flagsEnricherV2) {
public UpdatingFlagsService(CreditTrackerSettings settings,
PhonesMapMapper phonesMapMapper,
FlagsEnricher flagsEnricherV2) {
this.phonesMapMapper = phonesMapMapper;
this.flagsEnricherV2 = flagsEnricherV2;
this.updateDaysInterval = settings.getDaysToUpdateFlags();
}
@Scheduled(cron = "${ct.update-flags-cron-expression}")
@ -44,7 +49,7 @@ public class UpdatingFlagsService {
int batchNumber = 1;
List<PhonesMap> phonesMaps;
while (true) {
phonesMaps = phonesMapMapper.findEligibleForFlagsUpdate(lastId, BATCH_SIZE);
phonesMaps = phonesMapMapper.findEligibleForFlagsUpdate(lastId, updateDaysInterval, BATCH_SIZE);
log.trace("update batch {}, signals_phones_map records loaded: {}", batchNumber, phonesMaps.size());
if (phonesMaps.isEmpty()) {
break;

View file

@ -17,7 +17,7 @@ public class KickPipeLineRepeatedRestoreImpl extends KickPipeLine {
PackageRecordsService packageRecordsService,
CreditTrackerSettings creditTrackerSettings) {
super(setupParam, userPackageMapper, packageRecordsService, creditTrackerSettings);
this.daysToUpdateFlags = creditTrackerSettings.getDaysToUpdateFlags().intValue();
this.daysToUpdateFlags = creditTrackerSettings.getDaysToUpdateFlags();
}
@Override