У меня есть процесс, который отправляет несколько задач в 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 секунды) и вернет результат задаче. продолжать.
Как лучше всего подойти к этой проблеме?
Спасибо