pipeline orchestrator [2]
This commit is contained in:
parent
f2f7cfd5a1
commit
90259217b4
5 changed files with 48 additions and 63 deletions
|
|
@ -7,7 +7,6 @@ import java.nio.file.Path;
|
||||||
import java.nio.file.StandardCopyOption;
|
import java.nio.file.StandardCopyOption;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import javax.xml.stream.XMLStreamException;
|
import javax.xml.stream.XMLStreamException;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -41,7 +40,8 @@ import ru.nbch.credit_tracker.service.UserPackageService;
|
||||||
import ru.nbch.credit_tracker.service.scoring.AuthorizationService;
|
import ru.nbch.credit_tracker.service.scoring.AuthorizationService;
|
||||||
import ru.nbch.credit_tracker.service.signal.SignalRestService;
|
import ru.nbch.credit_tracker.service.signal.SignalRestService;
|
||||||
import ru.nbch.credit_tracker.service.task.Pipeline;
|
import ru.nbch.credit_tracker.service.task.Pipeline;
|
||||||
import ru.nbch.credit_tracker.service.task.PipelinePackageManager;
|
import ru.nbch.credit_tracker.service.task.PipelinePackageFabric;
|
||||||
|
import ru.nbch.credit_tracker.service.task.PipelinePackageOrchestrator;
|
||||||
import ru.nbch.credit_tracker.service.task.SetupParam;
|
import ru.nbch.credit_tracker.service.task.SetupParam;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.PipelineMode;
|
import ru.nbch.credit_tracker.service.task.impl.PipelineMode;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.Saver;
|
import ru.nbch.credit_tracker.service.task.impl.Saver;
|
||||||
|
|
@ -50,7 +50,6 @@ import ru.nbch.credit_tracker.utils.CtFileUtils;
|
||||||
import ru.nbch.credit_tracker.utils.EnumUtil;
|
import ru.nbch.credit_tracker.utils.EnumUtil;
|
||||||
import ru.nbch.credit_tracker.utils.LogUtil;
|
import ru.nbch.credit_tracker.utils.LogUtil;
|
||||||
import ru.nbch.credit_tracker.utils.ZipUtils;
|
import ru.nbch.credit_tracker.utils.ZipUtils;
|
||||||
import ru.nbch.credit_tracker.utils.error.ExceptionUtils;
|
|
||||||
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.clientExcp;
|
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.clientExcp;
|
||||||
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.serverExcp;
|
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.serverExcp;
|
||||||
|
|
||||||
|
|
@ -62,21 +61,22 @@ public class SignalFacadeV3 {
|
||||||
private final CreditTrackerSettings config;
|
private final CreditTrackerSettings config;
|
||||||
private final UserPackageService userPackageService;
|
private final UserPackageService userPackageService;
|
||||||
private final AuthorizationService authorizationService;
|
private final AuthorizationService authorizationService;
|
||||||
private final PipelinePackageManager pipelinePackageManager;
|
private final PipelinePackageFabric pipelinePackageManager;
|
||||||
private final SignalRestService signalRestService;
|
private final SignalRestService signalRestService;
|
||||||
private final Saver saver;
|
private final Saver saver;
|
||||||
private final ExecutorService pipelineExecutorService;
|
private final ExecutorService pipelineExecutorService;
|
||||||
private final ExecutorService saverExecutorService;
|
private final ExecutorService saverExecutorService;
|
||||||
|
private final PipelinePackageOrchestrator pipelineOrchestrator;
|
||||||
|
|
||||||
public SignalFacadeV3(MonitoringRequestValidator monitoringRequestValidator,
|
public SignalFacadeV3(MonitoringRequestValidator monitoringRequestValidator,
|
||||||
CreditTrackerSettings config,
|
CreditTrackerSettings config,
|
||||||
UserPackageService userPackageService,
|
UserPackageService userPackageService,
|
||||||
AuthorizationService authorizationService,
|
AuthorizationService authorizationService,
|
||||||
PipelinePackageManager pipelinePackageManager,
|
PipelinePackageFabric pipelinePackageManager,
|
||||||
SignalRestService signalRestService,
|
SignalRestService signalRestService,
|
||||||
Saver saver,
|
Saver saver,
|
||||||
ExecutorService pipelineExecutorService,
|
ExecutorService pipelineExecutorService,
|
||||||
ExecutorService saverExecutorService) {
|
ExecutorService saverExecutorService, PipelinePackageOrchestrator pipelineOrchestrator) {
|
||||||
this.monitoringRequestValidator = monitoringRequestValidator;
|
this.monitoringRequestValidator = monitoringRequestValidator;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.userPackageService = userPackageService;
|
this.userPackageService = userPackageService;
|
||||||
|
|
@ -86,6 +86,7 @@ public class SignalFacadeV3 {
|
||||||
this.saverExecutorService = saverExecutorService;
|
this.saverExecutorService = saverExecutorService;
|
||||||
this.pipelineExecutorService = pipelineExecutorService;
|
this.pipelineExecutorService = pipelineExecutorService;
|
||||||
this.saver = saver;
|
this.saver = saver;
|
||||||
|
this.pipelineOrchestrator = pipelineOrchestrator;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setupMonitoringRequest(MultipartFile file) {
|
public void setupMonitoringRequest(MultipartFile file) {
|
||||||
|
|
@ -150,18 +151,11 @@ public class SignalFacadeV3 {
|
||||||
Long packageId = userPackageService.registerPackage(userId, packageName);
|
Long packageId = userPackageService.registerPackage(userId, packageName);
|
||||||
LogUtil.addMdcLogKey("%s %d".formatted(packageName, packageId));
|
LogUtil.addMdcLogKey("%s %d".formatted(packageName, packageId));
|
||||||
log.info("Package registered. PackageId {}. Status: {}", packageId, Status.ACCEPTED.name());
|
log.info("Package registered. PackageId {}. Status: {}", packageId, Status.ACCEPTED.name());
|
||||||
Pipeline pipeline = pipelinePackageManager.buildAndRun(new SetupParam(packageId, parsedFilePath, PipelineMode.DEFAULT));
|
Pipeline pipeline = pipelinePackageManager.build(new SetupParam(packageId, parsedFilePath, PipelineMode.DEFAULT));
|
||||||
CompletableFuture
|
pipelineOrchestrator.startOrDelay(() -> {
|
||||||
.runAsync(() -> {
|
|
||||||
try {
|
|
||||||
saver.readAndSave(packageId, parsedFilePath);
|
saver.readAndSave(packageId, parsedFilePath);
|
||||||
CtFileUtils.deleteQuietly(parsedFilePath);
|
CtFileUtils.deleteQuietly(parsedFilePath);
|
||||||
} catch (Throwable t) {
|
}, pipeline, packageId);
|
||||||
log.error(ExceptionUtils.getStackTrace(t));
|
|
||||||
pipeline.close();
|
|
||||||
}
|
|
||||||
}, saverExecutorService)
|
|
||||||
.thenRun(() -> pipeline.start(pipelineExecutorService));
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
try {
|
try {
|
||||||
Files.delete(parsedFilePath);
|
Files.delete(parsedFilePath);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package ru.nbch.credit_tracker.service;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||||||
|
|
@ -13,7 +12,8 @@ import ru.nbch.credit_tracker.enums.Status;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper;
|
import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||||
import ru.nbch.credit_tracker.service.task.Pipeline;
|
import ru.nbch.credit_tracker.service.task.Pipeline;
|
||||||
import ru.nbch.credit_tracker.service.task.PipelinePackageManager;
|
import ru.nbch.credit_tracker.service.task.PipelinePackageFabric;
|
||||||
|
import ru.nbch.credit_tracker.service.task.PipelinePackageOrchestrator;
|
||||||
import ru.nbch.credit_tracker.service.task.SetupParam;
|
import ru.nbch.credit_tracker.service.task.SetupParam;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.PipelineMode;
|
import ru.nbch.credit_tracker.service.task.impl.PipelineMode;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.Saver;
|
import ru.nbch.credit_tracker.service.task.impl.Saver;
|
||||||
|
|
@ -31,7 +31,8 @@ public class UpdateProcessingPackagesService {
|
||||||
|
|
||||||
private final UserPackageMapper userPackageMapper;
|
private final UserPackageMapper userPackageMapper;
|
||||||
private final PhoneFidMapMapper phoneFidMapMapper;
|
private final PhoneFidMapMapper phoneFidMapMapper;
|
||||||
private final PipelinePackageManager pipelinePackageManager;
|
private final PipelinePackageFabric pipelinePackageManager;
|
||||||
|
private final PipelinePackageOrchestrator pipelineOrchestrator;
|
||||||
private final CreditTrackerSettings creditTrackerSettings;
|
private final CreditTrackerSettings creditTrackerSettings;
|
||||||
private final Saver saver;
|
private final Saver saver;
|
||||||
private final ExecutorService pipelineExecutorService;
|
private final ExecutorService pipelineExecutorService;
|
||||||
|
|
@ -39,7 +40,7 @@ public class UpdateProcessingPackagesService {
|
||||||
|
|
||||||
public UpdateProcessingPackagesService(UserPackageMapper userPackageMapper,
|
public UpdateProcessingPackagesService(UserPackageMapper userPackageMapper,
|
||||||
PhoneFidMapMapper phoneFidMapMapper,
|
PhoneFidMapMapper phoneFidMapMapper,
|
||||||
PipelinePackageManager pipelinePackageManager,
|
PipelinePackageFabric pipelinePackageManager, PipelinePackageOrchestrator pipelineOrchestrator,
|
||||||
CreditTrackerSettings creditTrackerSettings,
|
CreditTrackerSettings creditTrackerSettings,
|
||||||
Saver saver,
|
Saver saver,
|
||||||
ExecutorService pipelineExecutorService,
|
ExecutorService pipelineExecutorService,
|
||||||
|
|
@ -47,6 +48,7 @@ public class UpdateProcessingPackagesService {
|
||||||
this.userPackageMapper = userPackageMapper;
|
this.userPackageMapper = userPackageMapper;
|
||||||
this.phoneFidMapMapper = phoneFidMapMapper;
|
this.phoneFidMapMapper = phoneFidMapMapper;
|
||||||
this.pipelinePackageManager = pipelinePackageManager;
|
this.pipelinePackageManager = pipelinePackageManager;
|
||||||
|
this.pipelineOrchestrator = pipelineOrchestrator;
|
||||||
this.creditTrackerSettings = creditTrackerSettings;
|
this.creditTrackerSettings = creditTrackerSettings;
|
||||||
this.saver = saver;
|
this.saver = saver;
|
||||||
this.pipelineExecutorService = pipelineExecutorService;
|
this.pipelineExecutorService = pipelineExecutorService;
|
||||||
|
|
@ -68,17 +70,11 @@ public class UpdateProcessingPackagesService {
|
||||||
log.trace("Deleted {} rows", count);
|
log.trace("Deleted {} rows", count);
|
||||||
Path xmlReqPath = CTUtil.workingPathToReqByPackage(creditTrackerSettings.getLoadDir(), userPackage);
|
Path xmlReqPath = CTUtil.workingPathToReqByPackage(creditTrackerSettings.getLoadDir(), userPackage);
|
||||||
log.debug("Try to read and build pipeline for packageId {}; req xml path: {}", userPackage.getId(), xmlReqPath);
|
log.debug("Try to read and build pipeline for packageId {}; req xml path: {}", userPackage.getId(), xmlReqPath);
|
||||||
Pipeline pipeline = pipelinePackageManager.buildAndRun(new SetupParam(userPackage.getId(), xmlReqPath, PipelineMode.DEFAULT));
|
Pipeline pipeline = pipelinePackageManager.build(new SetupParam(userPackage.getId(), xmlReqPath, PipelineMode.DEFAULT));
|
||||||
CompletableFuture
|
pipelineOrchestrator.startOrDelay(
|
||||||
.runAsync(() -> {
|
() -> saver.readAndSave(userPackage.getId(), xmlReqPath),
|
||||||
try {
|
pipeline, userPackage.getId()
|
||||||
saver.readAndSave(userPackage.getId(), xmlReqPath);
|
);
|
||||||
} catch (Throwable t) {
|
|
||||||
log.error(ExceptionUtils.getStackTrace(t));
|
|
||||||
pipeline.close();
|
|
||||||
}
|
|
||||||
}, saverExecutorService)
|
|
||||||
.thenRun(() -> pipeline.start(pipelineExecutorService));
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Error build default pipeline for packageId {}: {}", userPackage.getId(), ExceptionUtils.getStackTrace(e));
|
log.error("Error build default pipeline for packageId {}: {}", userPackage.getId(), ExceptionUtils.getStackTrace(e));
|
||||||
}
|
}
|
||||||
|
|
@ -91,8 +87,8 @@ public class UpdateProcessingPackagesService {
|
||||||
log.debug("Found {} packages in status PROCESSING and rejected_status = null", packages.size());
|
log.debug("Found {} packages in status PROCESSING and rejected_status = null", packages.size());
|
||||||
for (UserPackage userPackage : packages) {
|
for (UserPackage userPackage : packages) {
|
||||||
try {
|
try {
|
||||||
Pipeline pipeline = pipelinePackageManager.buildAndRun(new SetupParam(userPackage.getId(), null, PipelineMode.RESTORE));
|
Pipeline pipeline = pipelinePackageManager.build(new SetupParam(userPackage.getId(), null, PipelineMode.RESTORE));
|
||||||
pipeline.start(pipelineExecutorService);
|
pipelineOrchestrator.startOrDelay(pipeline, userPackage.getId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Error build restore pipeline for packageId {}: {}", userPackage.getId(), ExceptionUtils.getStackTrace(e));
|
log.error("Error build restore pipeline for packageId {}: {}", userPackage.getId(), ExceptionUtils.getStackTrace(e));
|
||||||
}
|
}
|
||||||
|
|
@ -104,8 +100,8 @@ public class UpdateProcessingPackagesService {
|
||||||
log.debug("Found {} packages in status PROCESSING_REPEATED", packages.size());
|
log.debug("Found {} packages in status PROCESSING_REPEATED", packages.size());
|
||||||
for (UserPackage userPackage : packages) {
|
for (UserPackage userPackage : packages) {
|
||||||
try {
|
try {
|
||||||
Pipeline pipeline = pipelinePackageManager.buildAndRun(new SetupParam(userPackage.getId(), null, PipelineMode.REPEATED_RESTORE));
|
Pipeline pipeline = pipelinePackageManager.build(new SetupParam(userPackage.getId(), null, PipelineMode.REPEATED_RESTORE));
|
||||||
pipeline.start(pipelineExecutorService);
|
pipelineOrchestrator.startOrDelay(pipeline, userPackage.getId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Error build restore pipeline for packageId {}: {}", userPackage.getId(), ExceptionUtils.getStackTrace(e));
|
log.error("Error build restore pipeline for packageId {}: {}", userPackage.getId(), ExceptionUtils.getStackTrace(e));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,8 @@ import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||||
import ru.nbch.credit_tracker.service.signal.SignalRestService;
|
import ru.nbch.credit_tracker.service.signal.SignalRestService;
|
||||||
import ru.nbch.credit_tracker.service.task.Pipeline;
|
import ru.nbch.credit_tracker.service.task.Pipeline;
|
||||||
import ru.nbch.credit_tracker.service.task.PipelinePackageManager;
|
import ru.nbch.credit_tracker.service.task.PipelinePackageFabric;
|
||||||
|
import ru.nbch.credit_tracker.service.task.PipelinePackageOrchestrator;
|
||||||
import ru.nbch.credit_tracker.service.task.SetupParam;
|
import ru.nbch.credit_tracker.service.task.SetupParam;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.PipelineMode;
|
import ru.nbch.credit_tracker.service.task.impl.PipelineMode;
|
||||||
|
|
||||||
|
|
@ -33,7 +34,8 @@ public class UpdatingFlagsService {
|
||||||
private final Long daysToUpdateFlags;
|
private final Long daysToUpdateFlags;
|
||||||
private final PhoneFidMapMapper phoneFidMapMapper;
|
private final PhoneFidMapMapper phoneFidMapMapper;
|
||||||
private final UserPackageMapper userPackageMapper;
|
private final UserPackageMapper userPackageMapper;
|
||||||
private final PipelinePackageManager pipelinePackageManager;
|
private final PipelinePackageFabric pipelinePackageManager;
|
||||||
|
private final PipelinePackageOrchestrator pipelineOrchestrator;
|
||||||
private final ExecutorService pipelineExecutorService;
|
private final ExecutorService pipelineExecutorService;
|
||||||
|
|
||||||
public UpdatingFlagsService(SignalService signalService,
|
public UpdatingFlagsService(SignalService signalService,
|
||||||
|
|
@ -41,7 +43,7 @@ public class UpdatingFlagsService {
|
||||||
MonitoringErrorProcesingService monitoringErrorProcesingService,
|
MonitoringErrorProcesingService monitoringErrorProcesingService,
|
||||||
CreditTrackerSettings config,
|
CreditTrackerSettings config,
|
||||||
PhoneFidMapMapper phoneFidMapMapper, UserPackageMapper userPackageMapper,
|
PhoneFidMapMapper phoneFidMapMapper, UserPackageMapper userPackageMapper,
|
||||||
PipelinePackageManager pipelinePackageManager,
|
PipelinePackageFabric pipelinePackageManager, PipelinePackageOrchestrator pipelineOrchestrator,
|
||||||
ExecutorService pipelineExecutorService) {
|
ExecutorService pipelineExecutorService) {
|
||||||
this.signalService = signalService;
|
this.signalService = signalService;
|
||||||
this.signalRestService = signalRestService;
|
this.signalRestService = signalRestService;
|
||||||
|
|
@ -50,6 +52,7 @@ public class UpdatingFlagsService {
|
||||||
this.phoneFidMapMapper = phoneFidMapMapper;
|
this.phoneFidMapMapper = phoneFidMapMapper;
|
||||||
this.userPackageMapper = userPackageMapper;
|
this.userPackageMapper = userPackageMapper;
|
||||||
this.pipelinePackageManager = pipelinePackageManager;
|
this.pipelinePackageManager = pipelinePackageManager;
|
||||||
|
this.pipelineOrchestrator = pipelineOrchestrator;
|
||||||
this.pipelineExecutorService = pipelineExecutorService;
|
this.pipelineExecutorService = pipelineExecutorService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -65,8 +68,8 @@ public class UpdatingFlagsService {
|
||||||
if (hasOldRow) {
|
if (hasOldRow) {
|
||||||
try {
|
try {
|
||||||
userPackageMapper.updatePackageStatus(userPackage.getId(), Status.PROCESSING_REPEATED.name());
|
userPackageMapper.updatePackageStatus(userPackage.getId(), Status.PROCESSING_REPEATED.name());
|
||||||
Pipeline pipeline = pipelinePackageManager.buildAndRun(new SetupParam(userPackage.getId(), null, PipelineMode.DEFAULT));
|
Pipeline pipeline = pipelinePackageManager.build(new SetupParam(userPackage.getId(), null, PipelineMode.DEFAULT));
|
||||||
pipeline.start(pipelineExecutorService);
|
pipelineOrchestrator.startOrDelay(pipeline, userPackage.getId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Failed to build pipeline", e);
|
log.error("Failed to build pipeline", e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,23 +8,19 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.config.task.StageQueueFactory;
|
import ru.nbch.credit_tracker.config.task.StageQueueFactory;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
|
||||||
import ru.nbch.credit_tracker.model.impl.PartFilePayload;
|
import ru.nbch.credit_tracker.model.impl.PartFilePayload;
|
||||||
import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload;
|
import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload;
|
||||||
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
||||||
import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService;
|
|
||||||
import ru.nbch.credit_tracker.service.signal.SignalRestService;
|
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FidIdEnricher;
|
import ru.nbch.credit_tracker.service.task.impl.FidIdEnricher;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FidNameEnricher;
|
import ru.nbch.credit_tracker.service.task.impl.FidNameEnricher;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FlagsEnricher;
|
import ru.nbch.credit_tracker.service.task.impl.FlagsEnricher;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.Saver;
|
|
||||||
import ru.nbch.credit_tracker.service.task.setup.IPipeLineStarter;
|
import ru.nbch.credit_tracker.service.task.setup.IPipeLineStarter;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
|
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilderV2;
|
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilderV2;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class PipelinePackageManager implements InitializingBean {
|
public class PipelinePackageFabric implements InitializingBean {
|
||||||
private final FlagsEnricher flagsEnricherV2;
|
private final FlagsEnricher flagsEnricherV2;
|
||||||
private final StageQueueFactory<SubjectPayload> idEnricherQueueFactory;
|
private final StageQueueFactory<SubjectPayload> idEnricherQueueFactory;
|
||||||
private final StageQueueFactory<SubjectPayload> nameEnricherQueueFactory;
|
private final StageQueueFactory<SubjectPayload> nameEnricherQueueFactory;
|
||||||
|
|
@ -36,18 +32,15 @@ public class PipelinePackageManager implements InitializingBean {
|
||||||
private final CreditTrackerSettings creditTrackerSettings;
|
private final CreditTrackerSettings creditTrackerSettings;
|
||||||
private final PipelineBackoff pipelineBackoff;
|
private final PipelineBackoff pipelineBackoff;
|
||||||
|
|
||||||
public PipelinePackageManager(SignalRestService signalRestService,
|
public PipelinePackageFabric(@Qualifier("idEnricherQueueFactory") StageQueueFactory<SubjectPayload> idEnricherQueueFactory,
|
||||||
@Qualifier("idEnricherQueueFactory") StageQueueFactory<SubjectPayload> idEnricherQueueFactory,
|
|
||||||
@Qualifier("nameEnricherQueueFactory") StageQueueFactory<SubjectPayload> nameEnricherQueueFactory,
|
@Qualifier("nameEnricherQueueFactory") StageQueueFactory<SubjectPayload> nameEnricherQueueFactory,
|
||||||
@Qualifier("partFileQueueFactory") StageQueueFactory<PartFilePayload> sendSignalQueueFactory,
|
@Qualifier("partFileQueueFactory") StageQueueFactory<PartFilePayload> sendSignalQueueFactory,
|
||||||
UserPackageMapper userPackageMapper,
|
|
||||||
FidIdEnricher fidIdEnricherHandler,
|
FidIdEnricher fidIdEnricherHandler,
|
||||||
Supplier<IPipeLineTerminator<PartFilePayload, SignalXmlFilePayload>> pipelineTerminatorFactory,
|
Supplier<IPipeLineTerminator<PartFilePayload, SignalXmlFilePayload>> pipelineTerminatorFactory,
|
||||||
Function<SetupParam, IPipeLineStarter<SubjectPayload>> pipelineStarterFactory,
|
Function<SetupParam, IPipeLineStarter<SubjectPayload>> pipelineStarterFactory,
|
||||||
FlagsEnricher flagsEnricherV2, FidNameEnricher fidNameEnricher,
|
FlagsEnricher flagsEnricherV2, FidNameEnricher fidNameEnricher,
|
||||||
CreditTrackerSettings creditTrackerSettings,
|
CreditTrackerSettings creditTrackerSettings,
|
||||||
PipelineBackoff pipelineBackoff, Saver saver,
|
PipelineBackoff pipelineBackoff) {
|
||||||
MonitoringErrorProcesingService monitoringErrorProcesingService) {
|
|
||||||
this.idEnricherQueueFactory = idEnricherQueueFactory;
|
this.idEnricherQueueFactory = idEnricherQueueFactory;
|
||||||
this.nameEnricherQueueFactory = nameEnricherQueueFactory;
|
this.nameEnricherQueueFactory = nameEnricherQueueFactory;
|
||||||
this.sendSignalQueueFactory = sendSignalQueueFactory;
|
this.sendSignalQueueFactory = sendSignalQueueFactory;
|
||||||
|
|
@ -60,7 +53,7 @@ public class PipelinePackageManager implements InitializingBean {
|
||||||
this.pipelineBackoff = pipelineBackoff;
|
this.pipelineBackoff = pipelineBackoff;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Pipeline buildAndRun(SetupParam setupParam) throws Exception {
|
public Pipeline build(SetupParam setupParam) throws Exception {
|
||||||
return PipeLineBuilderV2.first(nameEnricherQueueFactory.getObject(), idEnricherQueueFactory.getObject())
|
return PipeLineBuilderV2.first(nameEnricherQueueFactory.getObject(), idEnricherQueueFactory.getObject())
|
||||||
.handler(fidNameEnricher)
|
.handler(fidNameEnricher)
|
||||||
.handlerResult(flagsEnricherV2)
|
.handlerResult(flagsEnricherV2)
|
||||||
|
|
@ -62,7 +62,7 @@ public class PipelinePackageOrchestrator {
|
||||||
innerStartOrDelay(before, pipeline, packageId);
|
innerStartOrDelay(before, pipeline, packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void innerStartOrDelay(Runnable before, Pipeline pipeline, Long packageId) {
|
private void innerStartOrDelay(Runnable before, Pipeline pipeline, Long packageId) {
|
||||||
try {
|
try {
|
||||||
if (before != null) {
|
if (before != null) {
|
||||||
CompletableFuture
|
CompletableFuture
|
||||||
|
|
@ -89,7 +89,7 @@ public class PipelinePackageOrchestrator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addCallback(Pipeline pipeline, Long packageId) {
|
private void addCallback(Pipeline pipeline, Long packageId) {
|
||||||
pipeline.getTerminator()
|
pipeline.getTerminator()
|
||||||
.doneFuture()
|
.doneFuture()
|
||||||
.orTimeout(creditTrackerSettings.getPipeline().globalTimeout().toMillis(), TimeUnit.MILLISECONDS)
|
.orTimeout(creditTrackerSettings.getPipeline().globalTimeout().toMillis(), TimeUnit.MILLISECONDS)
|
||||||
|
|
@ -134,7 +134,6 @@ public class PipelinePackageOrchestrator {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("delayed pipeline found: packageId={}. continue work...", delayedLaunch.packageId);
|
log.info("delayed pipeline found: packageId={}. continue work...", delayedLaunch.packageId);
|
||||||
innerStartOrDelay(delayedLaunch.before, delayedLaunch.pipeline, delayedLaunch.packageId);
|
innerStartOrDelay(delayedLaunch.before, delayedLaunch.pipeline, delayedLaunch.packageId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue