2014-12-05 5 views
0

В нашем проекте мы сбрасываем все данные, которые требуются для пакетной обработки в темной таблице на первом этапе. На втором этапе мы считываем данные из темной таблицы, обрабатываем ее (процессор) и удаляем ее из одной и той же таблицы temp (в JPAWriter). Мы используем JPAPagingItemReader, и мы сталкиваемся с той же проблемой, что и многие строки пропускаются. Решение дано в ссылке (я, е с помощью JDBCPagingItemReader) разработана для меняЗаписи пропущены из запроса с использованием JPAPagingitemReader

Spring batch jpaPagingItemReader why some rows are not read?

У меня есть несколько вопросов здесь,

  1. Является ли это правильный способ использовать JDBCPagingItemReader вместе с JPAPagingWriter ??
  2. Поскольку шаг будет выполняться в транзакции, будет ли это проблемой, если произойдет сбой во время обработки/записи, например, откат?
  3. Любая проблема в отношении производительности, поскольку нам необходимо обработать 1 миллион записей?
  4. Любые другие, кроме использования JDBCPagingItemReader подходов, пожалуйста, предоставьте

Благодарности

ответ

0
  1. Я не могу придумать причину, почему это было бы плохо OOTB, но это будет зависеть от вашего использования.
  2. Spring Batch предназначен для обработки транзакций ваших шагов. Если есть сбой, это задача Spring Batch, чтобы помочь. Мне нужно больше узнать о конкретных ошибках, которые вы хотите, чтобы предлагать точные решения.
  3. Я не поклонник связанного с JPA материала для работы, связанной с работой. При этом, опять же, это зависит от таких сложностей, как сложность ваших запросов, сколько данных загружается, как долго ваше окно обрабатывает 1 миллион записей и т. Д., Чтобы иметь возможность сказать, будет ли он достаточно эффективным.
  4. Я рекомендую использовать JdbcPagingItemReader. Это потокобезопасно, поэтому, если вам нужно ускорить работу, есть вещи, которые вы можете сделать, чтобы помочь.