У меня есть 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 метода.
Как правильно это реализовать?