Added Suspicios annotation

This commit is contained in:
Mikhail Trofimov 2026-04-23 15:29:23 +03:00
parent 6ded5b3a49
commit e9092e63db
5 changed files with 24 additions and 11 deletions

View file

@ -0,0 +1,5 @@
package ru.nbch.credit_tracker.refactoring;
public @interface Suspicios {
String value();
}

View file

@ -2,6 +2,7 @@ package ru.nbch.credit_tracker.service.task;
import ru.nbch.credit_tracker.model.PipelineContext;
import ru.nbch.credit_tracker.model.StagePayload;
import ru.nbch.credit_tracker.refactoring.Suspicios;
public interface Handler<X extends StagePayload, Z extends StagePayload> {
Z handle(X taskPayload);
@ -12,9 +13,11 @@ public interface Handler<X extends StagePayload, Z extends StagePayload> {
return (PipelineContext<T>) ctx;
}
@Suspicios("Удалить?")
default void handleOnPoison(X poison){
//do nothing
}
default int preferredConcurrency() {return 10;}
Z cookPoison();

View file

@ -1,15 +1,16 @@
package ru.nbch.credit_tracker.service.task;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.nbch.credit_tracker.model.PipelineContext;
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
import ru.nbch.credit_tracker.utils.LogUtil;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;
public class Pipeline {
private final Logger log = LoggerFactory.getLogger(getClass());
private Runnable starter;
@ -21,9 +22,6 @@ public class Pipeline {
private PipelineContext<?> context;
private volatile long startTime;
public Pipeline() {
}
public void start(ExecutorService executorService) {
this.startTime = System.currentTimeMillis();
this.starterFuture = executorService.submit(LogUtil.wrap(LogUtil.extractMdcMap(), starter));

View file

@ -1,14 +1,16 @@
package ru.nbch.credit_tracker.service.task.setup;
import java.util.Objects;
import java.util.concurrent.BlockingQueue;
import java.util.function.Consumer;
import ru.nbch.credit_tracker.model.StagePayload;
import ru.nbch.credit_tracker.refactoring.Suspicios;
import ru.nbch.credit_tracker.service.task.Handler;
import ru.nbch.credit_tracker.service.task.Stage;
import ru.nbch.credit_tracker.service.task.setup.step.BuildStep;
import ru.nbch.credit_tracker.service.task.setup.step.HandlerStep;
import java.util.Objects;
import java.util.concurrent.BlockingQueue;
import java.util.function.Consumer;
/**
* Step Builder для Stage:
* Обязательная последовательность: handler(...) -> poison(...) -> buildStage()
@ -46,6 +48,7 @@ public class StageBuilderV2<FIRST extends StagePayload, I extends StagePayload,
return this;
}
@Suspicios("Удалить?")
@Override
public BuildStep<FIRST, O> handlerResult(Consumer<O> consumer) {
this.consumer = Objects.requireNonNull(consumer, "consumer is required");

View file

@ -1,10 +1,14 @@
package ru.nbch.credit_tracker.service.task.setup.step;
import java.util.function.Consumer;
import ru.nbch.credit_tracker.model.StagePayload;
import ru.nbch.credit_tracker.refactoring.Suspicios;
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilderV2;
import java.util.function.Consumer;
public interface BuildStep<FIRST extends StagePayload, O extends StagePayload> {
PipeLineBuilderV2<FIRST, O> andThen();
@Suspicios("Удалить?")
BuildStep<FIRST, O> handlerResult(Consumer<O> consumer);
}