Оболочка для TaskExecutor и лучший интерфейс для него - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть 5 обработчиков, и каждый обработчик выполняет некоторую операцию в новом потоке.Теперь я вставляю java TaskExecutor каждому обработчику и вставляю определенную операцию каждому обработчику.И начать эту операцию.Пример для одного обработчика:

private final ImportOperation importOperation;
private final TaskExecutor taskExecutor;
// constructor inject

И Start:

taskExecutor.execute(() -> importOperation.importRequest(request.getImportedCharge(),newMessage.getGuid()));

Я хочу создать Wrapper мой исполнитель домена (я могу изменить реализацию так, как я хочу. Использовать TaskExecutor или другое иМне не нужно менять реализацию во всех обработчиках).Но я не понимаю, как создать интерфейс для этой обертки.Я создаю 2 варианта:

public interface MyHandlerExecutor {

    void execute(Runnable runnable, String guid);
    <T, R> void execute(Operation<T, R> operation, List<T> list, String guid);
}

И использую его: 1) первый вариант:

myHandlerExecutor.execute(() -> importOperation.importRequest(request.getImportedCharge(), newMessage.getGuid()), newMessage.getGuid());

2) Второй вариант:

myHandlerExecutor.execute(importOperation, request.getImportedCharge(), newMessage.getGuid();

В первом варианте Iне нравится, что мне нужно пройти guid 2 раза.Во втором wariant я не люблю аргументы 3 метода.

Как правильно это реализовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...