Выполняйте http-вызовы партиями - PullRequest
0 голосов
/ 01 августа 2020

У меня есть эта mainFunction, которая вызывает метод delete (), который вызывает внешнюю конечную точку с помощью http-клиента, для этого требуется сразу несколько идентификаторов для выполнения операций со всеми идентификаторами, в моем случае эти идентификаторы могут быть до 3000, и я хочу чтобы эти вызовы происходили партиями по 100 или около того, чтобы система не превышала тайм-аут в одном go ожидании завершения операции для всех 3000 идентификаторов

Каков наилучший предлагаемый способ достижения этого, поэтому что сам вызов функции delete () из mainFunction происходит партиями

    public void mainFunction() {
    .
    .
    .
    //delete call to be made in batches
    deleteCall(listOfIds);
    .
    .
    .
  }

  public void deleteCall(List<> listOfIds) {
  RestTemplate template = HttpUtils.getRestTemplate();
  //listOfIds is an ArrayList of 3000 ids
  String ids = StringUtils.join(listOfIds, ',');
  String url = BaseUrl + "/api/delete?Ids=" + ids;
  HttpHeaders httpHeader = getHttpHeaders();
  HttpEntity requestEntity = new HttpEntity(httpHeader);
  try {
        ResponseEntity<ResponseDTO> response = template.exchange(url, HttpMethod.POST, requestEntity,
            ResponseDTO.class);
    }catch(Exception e) {
       Log.error(e.getMessage());
    }
...