Added Suspicios annotation
This commit is contained in:
parent
6ded5b3a49
commit
e9092e63db
5 changed files with 24 additions and 11 deletions
|
|
@ -0,0 +1,5 @@
|
||||||
|
package ru.nbch.credit_tracker.refactoring;
|
||||||
|
|
||||||
|
public @interface Suspicios {
|
||||||
|
String value();
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@ package ru.nbch.credit_tracker.service.task;
|
||||||
|
|
||||||
import ru.nbch.credit_tracker.model.PipelineContext;
|
import ru.nbch.credit_tracker.model.PipelineContext;
|
||||||
import ru.nbch.credit_tracker.model.StagePayload;
|
import ru.nbch.credit_tracker.model.StagePayload;
|
||||||
|
import ru.nbch.credit_tracker.refactoring.Suspicios;
|
||||||
|
|
||||||
public interface Handler<X extends StagePayload, Z extends StagePayload> {
|
public interface Handler<X extends StagePayload, Z extends StagePayload> {
|
||||||
Z handle(X taskPayload);
|
Z handle(X taskPayload);
|
||||||
|
|
@ -12,9 +13,11 @@ public interface Handler<X extends StagePayload, Z extends StagePayload> {
|
||||||
return (PipelineContext<T>) ctx;
|
return (PipelineContext<T>) ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suspicios("Удалить?")
|
||||||
default void handleOnPoison(X poison){
|
default void handleOnPoison(X poison){
|
||||||
//do nothing
|
//do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
default int preferredConcurrency() {return 10;}
|
default int preferredConcurrency() {return 10;}
|
||||||
|
|
||||||
Z cookPoison();
|
Z cookPoison();
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,16 @@
|
||||||
package ru.nbch.credit_tracker.service.task;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.nbch.credit_tracker.model.PipelineContext;
|
import ru.nbch.credit_tracker.model.PipelineContext;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
|
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
|
||||||
import ru.nbch.credit_tracker.utils.LogUtil;
|
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 {
|
public class Pipeline {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private Runnable starter;
|
private Runnable starter;
|
||||||
|
|
@ -21,9 +22,6 @@ public class Pipeline {
|
||||||
private PipelineContext<?> context;
|
private PipelineContext<?> context;
|
||||||
private volatile long startTime;
|
private volatile long startTime;
|
||||||
|
|
||||||
public Pipeline() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public void start(ExecutorService executorService) {
|
public void start(ExecutorService executorService) {
|
||||||
this.startTime = System.currentTimeMillis();
|
this.startTime = System.currentTimeMillis();
|
||||||
this.starterFuture = executorService.submit(LogUtil.wrap(LogUtil.extractMdcMap(), starter));
|
this.starterFuture = executorService.submit(LogUtil.wrap(LogUtil.extractMdcMap(), starter));
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
package ru.nbch.credit_tracker.service.task.setup;
|
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.model.StagePayload;
|
||||||
|
import ru.nbch.credit_tracker.refactoring.Suspicios;
|
||||||
import ru.nbch.credit_tracker.service.task.Handler;
|
import ru.nbch.credit_tracker.service.task.Handler;
|
||||||
import ru.nbch.credit_tracker.service.task.Stage;
|
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.BuildStep;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.step.HandlerStep;
|
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:
|
* Step Builder для Stage:
|
||||||
* Обязательная последовательность: handler(...) -> poison(...) -> buildStage()
|
* Обязательная последовательность: handler(...) -> poison(...) -> buildStage()
|
||||||
|
|
@ -46,6 +48,7 @@ public class StageBuilderV2<FIRST extends StagePayload, I extends StagePayload,
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suspicios("Удалить?")
|
||||||
@Override
|
@Override
|
||||||
public BuildStep<FIRST, O> handlerResult(Consumer<O> consumer) {
|
public BuildStep<FIRST, O> handlerResult(Consumer<O> consumer) {
|
||||||
this.consumer = Objects.requireNonNull(consumer, "consumer is required");
|
this.consumer = Objects.requireNonNull(consumer, "consumer is required");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,14 @@
|
||||||
package ru.nbch.credit_tracker.service.task.setup.step;
|
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.model.StagePayload;
|
||||||
|
import ru.nbch.credit_tracker.refactoring.Suspicios;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilderV2;
|
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilderV2;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public interface BuildStep<FIRST extends StagePayload, O extends StagePayload> {
|
public interface BuildStep<FIRST extends StagePayload, O extends StagePayload> {
|
||||||
PipeLineBuilderV2<FIRST, O> andThen();
|
PipeLineBuilderV2<FIRST, O> andThen();
|
||||||
|
|
||||||
|
@Suspicios("Удалить?")
|
||||||
BuildStep<FIRST, O> handlerResult(Consumer<O> consumer);
|
BuildStep<FIRST, O> handlerResult(Consumer<O> consumer);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue