Медленная apache скорость загрузки httppost - PullRequest
0 голосов
/ 05 апреля 2020
   try (CloseableHttpAsyncClient client = HttpAsyncClients.createDefault()) {
    client.start();
    MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
    List<HttpPost> posts = new ArrayList<>();

    for (int i = 0; i < 10; i++) {
        if (!uploadQueue.isEmpty()) {
            String filename = uploadQueue.take();
            HttpPost link = new HttpPost();
            HttpEntity fileEntity = entityBuilder.addBinaryBody("file", new File(filename)).build();
            link.setEntity(fileEntity);
            link.addHeader("filename", filename);
            link.setURI(URI.create("serverLink"));
            posts.add(link);
        }
    }
    CountDownLatch latch = new CountDownLatch(posts.size());

    for (HttpPost request: posts) {
        String filename = request.getFirstHeader("filename").getValue();
        client.execute(request, new UploadHandler(latch, filename));
    }
    latch.await();
} catch (IOException | InterruptedException e) {
    e.printStackTrace();
}

Эта вещь работает очень медленно. Все файлы размером менее 1 КБ. Но если я удаляю все циклы, это становится намного быстрее. Можете ли вы помочь мне понять, почему?

...