У меня есть программа, которая анализирует некоторые данные из файлов HTML, а затем выполняет некоторые вычисления для этих файлов в зависимости от текущей даты.
Поскольку анализ файлов занимает много времени, и они не меняются, теперь я храню данные во встроенной базе данных H2 и анализирую их, только если данные из этого файла еще не находятся в базе данных. В противном случае я просто запрашиваю его из базы данных. Тем не менее, при первоначальном разборе, а также при появлении новых файлов это занимает много времени.
Итак, я сейчас нахожусь в точке, где я пытаюсь выполнить многопоточность разбора. Я хочу сделать это, используя ExecutorService и разделить файлы на несколько задач (одна на файл, вероятно, не очень хорошая идея, вероятно, будет 10-20 задач для использования всех ядер). Сейчас я не знаю, как мне реализовать доступ к базе данных. Должен ли я иметь только одно соединение и создавать необходимые PreparedStatements для каждой задачи, или я должен использовать пул соединений (а также создавать PreparedStatements для каждой задачи) или что-то еще?