pipeline builder refactor

This commit is contained in:
ialbert 2025-11-01 15:18:58 +03:00
parent 8e53f24aeb
commit d24cd03656
2 changed files with 6 additions and 6 deletions

View file

@ -100,13 +100,11 @@ public class PipelinePackageManager {
} }
public void buildAndRun2(Long packageId, String pkgPath) throws Exception { public void buildAndRun2(Long packageId, String pkgPath) throws Exception {
BlockingQueue<SubjectPayload> idEnricherQueue = idEnricherQueueFactory.getObject(); var startPipeLine = PipeLineBuilderV2.first(saveSubjectQueueFactory.getObject(), idEnricherQueueFactory.getObject())
BlockingQueue<SendSignalsPayload> signalsQueue = sendSignalQueueFactory.getObject();
var startPipeLine = PipeLineBuilderV2.first(saveSubjectQueueFactory.getObject(), idEnricherQueue)
.handler(saveSubjectHandler) .handler(saveSubjectHandler)
.poison(SubjectPayload.POISON) .poison(SubjectPayload.POISON)
.andThen() .andThen()
.stage(idEnricherQueue, signalsQueue) .stage(sendSignalQueueFactory.getObject())
.handler(fidIdEnricherHandler) .handler(fidIdEnricherHandler)
.poison(SendSignalsPayload.POISON) .poison(SendSignalsPayload.POISON)
.andThen() .andThen()

View file

@ -11,6 +11,7 @@ import ru.nbch.credit_tracker.service.task.setup.step.HandlerStep;
public class PipeLineBuilderV2<FIRST extends StagePayload, LAST extends StagePayload> { public class PipeLineBuilderV2<FIRST extends StagePayload, LAST extends StagePayload> {
private final List<Stage<?, ?>> stages; private final List<Stage<?, ?>> stages;
private Stage<FIRST, ?> firstStage; private Stage<FIRST, ?> firstStage;
private BlockingQueue<LAST> lastQueue;
private PipeLineBuilderV2() { private PipeLineBuilderV2() {
this.stages = new ArrayList<>(); this.stages = new ArrayList<>();
@ -19,6 +20,7 @@ public class PipeLineBuilderV2<FIRST extends StagePayload, LAST extends StagePay
public static <I extends StagePayload, O extends StagePayload> public static <I extends StagePayload, O extends StagePayload>
HandlerStep<I, I, O> first(BlockingQueue<I> inputQueue, BlockingQueue<O> outputQueue) { HandlerStep<I, I, O> first(BlockingQueue<I> inputQueue, BlockingQueue<O> outputQueue) {
PipeLineBuilderV2<I, O> builder = new PipeLineBuilderV2<>(); PipeLineBuilderV2<I, O> builder = new PipeLineBuilderV2<>();
builder.lastQueue = outputQueue;
HandlerStep<I, I, O> step = StageBuilderV2.create(inputQueue, outputQueue); HandlerStep<I, I, O> step = StageBuilderV2.create(inputQueue, outputQueue);
((StageBuilderV2<I, I, O>) step).setParent(builder); ((StageBuilderV2<I, I, O>) step).setParent(builder);
return step; return step;
@ -26,8 +28,8 @@ public class PipeLineBuilderV2<FIRST extends StagePayload, LAST extends StagePay
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public <NEXT extends StagePayload> public <NEXT extends StagePayload>
HandlerStep<FIRST, LAST, NEXT> stage(BlockingQueue<LAST> inputQueue, BlockingQueue<NEXT> outputQueue) { HandlerStep<FIRST, LAST, NEXT> stage(BlockingQueue<NEXT> outputQueue) {
HandlerStep<FIRST, LAST, NEXT> step = StageBuilderV2.create(inputQueue, outputQueue); HandlerStep<FIRST, LAST, NEXT> step = StageBuilderV2.create(lastQueue, outputQueue);
((StageBuilderV2<FIRST, LAST, NEXT>) step).setParent((PipeLineBuilderV2<FIRST, NEXT>) this); ((StageBuilderV2<FIRST, LAST, NEXT>) step).setParent((PipeLineBuilderV2<FIRST, NEXT>) this);
return step; return step;
} }