Имам процес, който изпраща множество задачи в ExecutorService, да речем MyTask. Моята задача изисква стойност от външна услуга, да кажем ExternalService. Това, което се опитвам да направя, е ExternalService да обработва групово заявките, да кажем на всеки 100 входящи или на всяка 1 секунда и до този момент да накара нишките MyTask да бъдат задържани, докато не получат отговор:
public class MyTask implements Runnable {
@Override
public void run() {
try {
// .... code ....
ExternalData data = externalService.getData(id);
// ..... code after batch ...
}catch (Exception e){
}
}
}
Имам нужда от услуга externalService, за да задържа MyTask, докато изпълни своята операция групово (чрез натрупване на 100 заявки или като изчака 1 секунда) и върне резултата на задачата продължавам.
Какъв е най-добрият начин за подход към този проблем?
Благодаря ти