ialbert 2026-03-17 17:02:40 +03:00
parent 9b249b4f4f
commit 8a434848f0
7 changed files with 21 additions and 5 deletions

View file

@ -30,7 +30,7 @@ public class PipelineStarterConfig {
PackageRecordsService packageRecordsService, PackageRecordsService packageRecordsService,
PhonesMapMapper phonesMapMapper) { PhonesMapMapper phonesMapMapper) {
return (setupParam) -> switch (setupParam.mode()) { return (setupParam) -> switch (setupParam.mode()) {
case DEFAULT -> case DEFAULT, RESEND ->
new KickPipeLineDefaultImpl(setupParam, userPackageMapper, packageRecordsService, creditTrackerSettings); new KickPipeLineDefaultImpl(setupParam, userPackageMapper, packageRecordsService, creditTrackerSettings);
case RESTORE -> case RESTORE ->
new KickPipeLineDefaultImpl(setupParam, userPackageMapper, packageRecordsService, creditTrackerSettings); new KickPipeLineDefaultImpl(setupParam, userPackageMapper, packageRecordsService, creditTrackerSettings);

View file

@ -3,5 +3,6 @@ package ru.nbch.credit_tracker.model.impl;
public enum PackageVariable { public enum PackageVariable {
packageId, packageId,
cacheMisses, cacheMisses,
cacheHits cacheHits,
mode
} }

View file

@ -62,7 +62,7 @@ public class UpdatingFidAndPdService {
List<UserPackage> packagesRepeated = userPackageMapper.findForRepeatedPackages(); List<UserPackage> packagesRepeated = userPackageMapper.findForRepeatedPackages();
packagesRepeated.forEach(userPackage -> { packagesRepeated.forEach(userPackage -> {
Long packageId = userPackage.getId(); Long packageId = userPackage.getId();
SetupParam setupParam = new SetupParam(packageId, null, PipelineMode.DEFAULT); SetupParam setupParam = new SetupParam(packageId, null, PipelineMode.RESEND);
try { try {
Pipeline makeXmlByCache = pipelinePackageManager.build(setupParam); Pipeline makeXmlByCache = pipelinePackageManager.build(setupParam);
pipelinePackageOrchestrator.startOrDelay(makeXmlByCache, packageId); pipelinePackageOrchestrator.startOrDelay(makeXmlByCache, packageId);

View file

@ -16,6 +16,7 @@ import ru.nbch.credit_tracker.model.impl.PackageVariable;
import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload; import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload;
import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService; import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService;
import ru.nbch.credit_tracker.service.signal.SignalRestService; import ru.nbch.credit_tracker.service.signal.SignalRestService;
import ru.nbch.credit_tracker.service.task.impl.PipelineMode;
import ru.nbch.credit_tracker.service.task.impl.XmlMergeCoordinator; import ru.nbch.credit_tracker.service.task.impl.XmlMergeCoordinator;
import ru.nbch.credit_tracker.utils.error.ExceptionUtils; import ru.nbch.credit_tracker.utils.error.ExceptionUtils;
@ -125,7 +126,12 @@ public class PipelinePackageOrchestrator {
log.trace("Signal file by path: {} is completed", res.signalXmlFilePath()); log.trace("Signal file by path: {} is completed", res.signalXmlFilePath());
boolean success = signalRestService.setupMonitoring(res.signalXmlFilePath()); boolean success = signalRestService.setupMonitoring(res.signalXmlFilePath());
if (success) { if (success) {
PipelineMode mode = ctx.get(PackageVariable.mode);
if (mode != null && mode.equals(PipelineMode.DEFAULT)) {
userPackageMapper.updatePackageOnMonitoringSuccess(packageId, LocalDateTime.now()); userPackageMapper.updatePackageOnMonitoringSuccess(packageId, LocalDateTime.now());
} else {
userPackageMapper.updatePackageOnMonitoringSuccess(packageId, null);
}
monitoringErrorProcesingService.findErrors(packageId); monitoringErrorProcesingService.findErrors(packageId);
} else { } else {
userPackageMapper.setRejectedStatus(packageId, RejectedStatus.ERROR.getKey()); userPackageMapper.setRejectedStatus(packageId, RejectedStatus.ERROR.getKey());

View file

@ -23,6 +23,7 @@ import ru.nbch.credit_tracker.utils.error.ExceptionUtils;
public abstract class KickPipeLine implements IPipeLineStarter<SubjectPayload> { public abstract class KickPipeLine implements IPipeLineStarter<SubjectPayload> {
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
protected final Long packageId; protected final Long packageId;
protected final PipelineMode mode;
protected final UserPackageMapper userPackageMapper; protected final UserPackageMapper userPackageMapper;
protected final PackageRecordsService packageRecordsService; protected final PackageRecordsService packageRecordsService;
protected final CreditTrackerSettings creditTrackerSettings; protected final CreditTrackerSettings creditTrackerSettings;
@ -41,6 +42,7 @@ public abstract class KickPipeLine implements IPipeLineStarter<SubjectPayload> {
this.packageRecordsService = packageRecordsService; this.packageRecordsService = packageRecordsService;
this.creditTrackerSettings = creditTrackerSettings; this.creditTrackerSettings = creditTrackerSettings;
this.BATCH_SIZE = creditTrackerSettings.getPipeline().subjectBatchSize(); this.BATCH_SIZE = creditTrackerSettings.getPipeline().subjectBatchSize();
this.mode = setupParam.mode();
} }
private static class PipelineStarterException extends SignalClientException { private static class PipelineStarterException extends SignalClientException {
@ -62,6 +64,7 @@ public abstract class KickPipeLine implements IPipeLineStarter<SubjectPayload> {
context.store(PackageVariable.packageId, packageId); context.store(PackageVariable.packageId, packageId);
context.store(PackageVariable.cacheMisses, new AtomicInteger()); context.store(PackageVariable.cacheMisses, new AtomicInteger());
context.store(PackageVariable.cacheHits, new AtomicInteger()); context.store(PackageVariable.cacheHits, new AtomicInteger());
context.store(PackageVariable.mode, mode);
int limit = BATCH_SIZE; int limit = BATCH_SIZE;
UserPackage userPackage = userPackageMapper.findPackage(packageId); UserPackage userPackage = userPackageMapper.findPackage(packageId);
List<PackagesRecordsMap> page = nextPage(limit); List<PackagesRecordsMap> page = nextPage(limit);

View file

@ -7,6 +7,7 @@ package ru.nbch.credit_tracker.service.task.impl;
*/ */
public enum PipelineMode { public enum PipelineMode {
DEFAULT, DEFAULT,
RESEND,
RESTORE, RESTORE,
REPEATED_RESTORE, REPEATED_RESTORE,
RECALC_PERSONAL_DATA, RECALC_PERSONAL_DATA,

View file

@ -91,7 +91,12 @@
<update id="updatePackageOnMonitoringSuccess"> <update id="updatePackageOnMonitoringSuccess">
UPDATE signals_user_packages UPDATE signals_user_packages
SET monitoring_at = #{monitoringAt}, status = 'ON_MONITORING', fid_changed = null SET
<if test="monitoringAt != null">
monitoring_at = #{monitoringAt},
</if>
status = 'ON_MONITORING',
fid_changed = null
WHERE id = #{id} WHERE id = #{id}
</update> </update>