2014-12-05 72 views
0

在我們的項目中,我們將第一步中的批處理所需的所有數據轉儲到temperory表中。在第二步中,我們正在從temperory表中讀取數據,處理它(處理器)並從同一臨時表中刪除它(在JPAWriter中)。我們正在使用JPAPagingItemReader,因爲許多行正在跳過,所以我們面臨同樣的問題。 中的鏈接(I,E使用JDBCPagingItemReader)給出的解決方案是爲我工作使用JPAPagingitemReader從查詢中省略的記錄

Spring batch jpaPagingItemReader why some rows are not read?

我這裏有幾個問題,

  1. 是否使用JDBCPagingItemReader與JPAPagingWriter沿着正確的方式??
  2. 由於一個步驟將在事務中執行,如果在處理/寫入過程中出現故障(如回滾),會出現問題嗎?
  3. 由於我們需要處理100萬條記錄,因此性能方面的問題是什麼?
  4. 比使用其他JDBCPagingItemReader任何其他方法,請提供

感謝

回答

0
  1. 我想不出有任何理由爲什麼它會是壞的開箱即用的,但是這將取決於你的使用情況。
  2. Spring Batch旨在處理您的步驟的事務性。如果出現故障,這是Spring Batch的工作。我需要更多地瞭解您所關心的具體錯誤,以便能夠提出確切的解決方案。
  3. 我不是與性能相關工作相關的JPA粉絲。也就是說,它依賴於查詢的複雜性,正在加載多少數據,窗口處理100萬條記錄等等,以便能夠說明它的性能是否足夠。
  4. 我推薦使用JdbcPagingItemReader。這是線程安全的,所以如果你需要加快速度,你可以做些事情來幫助。