Проблема обработки больших объемов данных с использованием связи апплет-сервлет

StackOverflow https://stackoverflow.com/questions/3017826

Вопрос

У меня есть апплет, который отправляет запрос к сервлету.В сервлете он использует PrintWriter для записи ответа обратно в апплет:

out.println("Field1|Field2|Field3|Field4|Field5......|Field10");

Существует около 15000 записей, поэтому out.println() выполняется около 15000 раз.

Проблема в том, что когда апплет получает ответ от сервлета, обработка записей занимает около 15 минут.Я разместил System.out.println, и обработка приостановлена примерно на отметке 5000, затем через 15 минут обработка продолжается, а затем все готово.

Кто-нибудь сталкивался с подобной проблемой?Выполнение сервлета занимает около 2 секунд.Похоже, что браузер / апплет работает слишком медленно, чтобы обрабатывать записи.

Это код апплета.Иногда это просто останавливается на первом System.out, а иногда и на втором System.out.

while ((line = in.readLine()) != null) {
    System.out.println("Reading from stream....");
    datavector.add(line);
    System.out.println("Vector size="+datavector.size()+"  Line added="+line);
}

Любые идеи приветствуются.

Спасибо.

Это было полезно?

Решение

Ваш вопрос связан с тем, что "обработка приостанавливается около 5000 записей, а затем запускается сама по себе через 15"?ИЛИ это медленная обработка в вашем апплете

Будет полезно, если вы опубликуете какой-нибудь фрагмент кода?

Другие советы

Удалите System.out.println() строки из while петля.Это пер Салдо звонит System.out.println() 30 000 раз.Это добавило бы многое над головой.Просто поместите один до и один после while зациклите, если хотите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top