diff --git a/pom.xml b/pom.xml index d2773ba..5404743 100644 --- a/pom.xml +++ b/pom.xml @@ -18,10 +18,10 @@ 21 git_info git.properties - + 10.230.238.56:5000 main monitoring - rh8-vm3.nbki.msk:5000 + diff --git a/src/main/java/ru/nbch/credit_tracker/service/mode/migration/CTMigrationApplication.java b/src/main/java/ru/nbch/credit_tracker/service/mode/migration/CTMigrationApplication.java index 8313937..5ce39b6 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/mode/migration/CTMigrationApplication.java +++ b/src/main/java/ru/nbch/credit_tracker/service/mode/migration/CTMigrationApplication.java @@ -6,16 +6,38 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.FilterType; +import ru.nbch.credit_tracker.component.MonitoringRequestValidator; +import ru.nbch.credit_tracker.config.datasource.ScoringDataSourceConfig; +import ru.nbch.credit_tracker.config.rest.RestConfig; +import ru.nbch.credit_tracker.config.xml.XmlConfig; +import ru.nbch.credit_tracker.controller.SignalControllerV3; +import ru.nbch.credit_tracker.facade.SignalFacadeV3; +import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService; +import ru.nbch.credit_tracker.service.mode.common.CTMainApplication; +import ru.nbch.credit_tracker.service.mode.common.StartupRestoreService; +import ru.nbch.credit_tracker.service.mode.common.UpdatingFidAndPdService; +import ru.nbch.credit_tracker.service.mode.common.UpdatingFlagsService; +import ru.nbch.credit_tracker.service.mode.monitoring.CTMonitoringApplication; +import ru.nbch.credit_tracker.service.mode.monitoring.MonitoringService; +import ru.nbch.credit_tracker.service.scoring.AuthorizationService; +import ru.nbch.credit_tracker.service.signal.SignalRestService; +import ru.nbch.credit_tracker.service.task.PipelinePackageFabric; +import ru.nbch.credit_tracker.service.task.PipelinePackageOrchestrator; +import ru.nbch.credit_tracker.service.task.impl.FlagsEnricher; +import ru.nbch.credit_tracker.service.task.impl.Saver; @SpringBootApplication @ComponentScan( - value = {"ru.nbch.credit_tracker"}, + basePackages = {"ru.nbch.credit_tracker"}, excludeFilters = { @ComponentScan.Filter( - type = FilterType.REGEX, - pattern = { - "ru\\.nbch\\.credit_tracker\\.service\\.mode\\.common..*", - "ru\\.nbch\\.credit_tracker\\.service\\.mode\\.monitoring..*" + type = FilterType.ASSIGNABLE_TYPE, + classes = {CTMonitoringApplication.class, CTMainApplication.class, + ScoringDataSourceConfig.class,StartupRestoreService.class, UpdatingFidAndPdService.class, + UpdatingFlagsService.class, MonitoringService.class, AuthorizationService.class, + SignalFacadeV3.class, SignalControllerV3.class, FlagsEnricher.class, PipelinePackageFabric.class, + RestConfig.class, SignalRestService.class, MonitoringErrorProcesingService.class, Saver.class, + PipelinePackageOrchestrator.class, XmlConfig.class, MonitoringRequestValidator.class } ) } diff --git a/src/main/java/ru/nbch/credit_tracker/service/mode/migration/MigrationService.java b/src/main/java/ru/nbch/credit_tracker/service/mode/migration/MigrationService.java index 5698031..5c039fd 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/mode/migration/MigrationService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/mode/migration/MigrationService.java @@ -7,7 +7,7 @@ import org.springframework.context.ConfigurableApplicationContext; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.stereotype.Service; import ru.nbch.credit_tracker.service.task.Pipeline; -import ru.nbch.credit_tracker.service.task.PipelinePackageFabric; +import ru.nbch.credit_tracker.service.task.PipelineMigrationPackageFabric; import ru.nbch.credit_tracker.service.task.PipelineRecalcPDOrchestrator; import ru.nbch.credit_tracker.service.task.SetupParam; import ru.nbch.credit_tracker.service.task.impl.PipelineMode; @@ -16,11 +16,11 @@ import ru.nbch.credit_tracker.service.task.impl.PipelineMode; @Service @EnableScheduling public class MigrationService { - private final PipelinePackageFabric pipelinePackageManager; + private final PipelineMigrationPackageFabric pipelinePackageManager; private final PipelineRecalcPDOrchestrator pipelineRecalcPDOrchestrator; private final ConfigurableApplicationContext context; - public MigrationService(PipelinePackageFabric pipelinePackageManager, + public MigrationService(PipelineMigrationPackageFabric pipelinePackageManager, PipelineRecalcPDOrchestrator pipelineRecalcPDOrchestrator, ConfigurableApplicationContext context) { this.pipelinePackageManager = pipelinePackageManager; diff --git a/src/main/java/ru/nbch/credit_tracker/service/task/PipelineMigrationPackageFabric.java b/src/main/java/ru/nbch/credit_tracker/service/task/PipelineMigrationPackageFabric.java new file mode 100644 index 0000000..bc43c04 --- /dev/null +++ b/src/main/java/ru/nbch/credit_tracker/service/task/PipelineMigrationPackageFabric.java @@ -0,0 +1,72 @@ +package ru.nbch.credit_tracker.service.task; + +import java.util.function.Function; +import java.util.function.Supplier; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; +import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; +import ru.nbch.credit_tracker.config.task.StageQueueFactory; +import ru.nbch.credit_tracker.model.impl.EmptyTerminatePayload; +import ru.nbch.credit_tracker.model.impl.PackageVariable; +import ru.nbch.credit_tracker.model.impl.SubjectPayload; +import ru.nbch.credit_tracker.model.impl.VoidPayload; +import ru.nbch.credit_tracker.service.task.impl.FidIdUpdater; +import ru.nbch.credit_tracker.service.task.impl.FidNameUpdaterMigration; +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.PipeLineBuilderV2; + +@Component +@Slf4j +public class PipelineMigrationPackageFabric implements InitializingBean { + private final StageQueueFactory idUpdaterQueueFactory; + private final StageQueueFactory nameUpdaterQueueFactory; + private final StageQueueFactory noOpQueueFactory; + private final FidIdUpdater fidIdUpdater; + private final FidNameUpdaterMigration fidNameUpdaterMigration; + private final Supplier> noOpTerminatorFactory; + private final Function> pipelineStarterFactory; + private final CreditTrackerSettings creditTrackerSettings; + private final PipelineBackoff pipelineBackoff; + + public PipelineMigrationPackageFabric(@Qualifier("idUpdaterQueueFactory") StageQueueFactory idUpdaterQueueFactory, + @Qualifier("nameUpdaterQueueFactory") StageQueueFactory nameUpdaterQueueFactory, + @Qualifier("noOpQueueFactory") StageQueueFactory noOpQueueFactory, + FidIdUpdater fidIdUpdater, + FidNameUpdaterMigration fidNameUpdaterMigration, + Supplier> noOpTerminatorFactory, + Function> pipelineStarterFactory, + CreditTrackerSettings creditTrackerSettings, + PipelineBackoff pipelineBackoff) { + this.idUpdaterQueueFactory = idUpdaterQueueFactory; + this.nameUpdaterQueueFactory = nameUpdaterQueueFactory; + this.noOpQueueFactory = noOpQueueFactory; + this.fidIdUpdater = fidIdUpdater; + this.fidNameUpdaterMigration = fidNameUpdaterMigration; + this.noOpTerminatorFactory = noOpTerminatorFactory; + this.pipelineStarterFactory = pipelineStarterFactory; + this.creditTrackerSettings = creditTrackerSettings; + this.pipelineBackoff = pipelineBackoff; + } + + public Pipeline buildRecalculationPDMigration(SetupParam setupParam) throws Exception { + return PipeLineBuilderV2.first(nameUpdaterQueueFactory.getObject(), idUpdaterQueueFactory.getObject()) + .handler(fidNameUpdaterMigration) + .andThen() + .stage(noOpQueueFactory.getObject()) + .handler(fidIdUpdater) + .andThen() + .fillInitialQueue(pipelineStarterFactory.apply(setupParam)) + .pollFinishingQueue(noOpTerminatorFactory.get()) + .backoff(pipelineBackoff) + .context(PackageVariable.class) + .build(); + } + + @Override + public void afterPropertiesSet() throws Exception { + log.info("pipeline settings: {}", creditTrackerSettings.getPipeline()); + } +}