Эффективная обработка большого набора данных с использованием нумерации страниц и многопоточности в Java.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Эффективная обработка большого набора данных с использованием нумерации страниц и многопоточности в Java.

Сообщение Anonymous »

Я работаю над Java-приложением, которое требует от меня обработки большого набора строк, полученных из базы данных. Вот пример ситуации:

Код: Выделить всё

class Example {
@Autowired
private Service service;

public static void main(String[] args) {
long totalRows = service.getTotalRows(); // E.g., 976451 rows

int totalPages = (int) Math.ceil((double) totalRows / 20 ); //48823
ExecutorService executorService = Executors.newFixedThreadPool(20); //lets say 20 threads

// Fetch rows for each page and process
for (int pageNumber = 0; pageNumber < totalPages; pageNumber++) {
// so now i want to fetch each page with (0,48823 ) - assign to 1 thread
// than (1, 48823 ) - assign to another thread
// ..... same for all 20 threads....
// and simultaneously do the tasks analyzeMethod(row); processMethod(row);

Page all = service.getRowsByPagination(pageNumber, pageSize);
all.get().toList().forEach(row -> {
analyzeMethod(row);
processMethod(row);
});
}
}

public void analyzeMethod(Row row) {
// Perform database-related analysis
}

public void processMethod(Row row) {
// Additional processing
}
}
Проще говоря, я буду получать тысячи или миллионы строк из базы данных. У меня есть метод, с помощью которого он будет получать объекты страницы. Мне нужно выполнять задачи асинхронно.
Я попробовал описанный выше способ и новичок в концепциях многопоточности, я не получаю ожидаемого результата и получаю исключения. Как реализовать описанный выше сценарий?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ding-in-ja
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»