0

在我们的项目中,我们在第一步中将批处理所需的所有数据转储到临时表中。在第二步中,我们从 tempory 表中读取数据,处理它(处理器)并从同一个 temp 表中删除它(在 JPAWriter 中)。我们正在使用 JPAPagingItemReader,我们面临同样的问题,因为许多行被跳过。链接中给出的解决方案(即使用 JDBCPagingItemReader)对我有用

Spring批处理jpaPagingItemReader为什么有些行没有被读取?

我这里有几个问题,

  1. 将 JDBCPagingItemReader 与 JPAPagingWriter 一起使用是正确的方法吗?
  2. 由于一个步骤将在事务中执行,如果在处理/写入过程中出现故障(如回滚)会不会有问题?
  3. 由于我们需要处理 100 万条记录,因此在性能方面有任何问题吗?
  4. 除使用 JDBCPagingItemReader 之外的任何其他方法,请提供

谢谢

4

1 回答 1

0
  1. 我想不出 OOTB 不好的原因,但这取决于您的用例。
  2. Spring Batch 旨在处理您的步骤的事务性。如果出现故障,Spring Batch 的工作就是提供帮助。我需要更多地了解您关心的具体错误,以便能够提出确切的解决方案。
  3. 我不喜欢 JPA 相关的性能相关工作。话虽如此,这取决于查询的复杂性、正在加载的数据量、处理 100 万条记录的窗口时间等因素,以判断它是否足够高效。
  4. 我推荐使用 JdbcPagingItemReader。它是线程安全的,因此如果您需要加快速度,您可以采取一些措施来提供帮助。
于 2014-12-05T15:32:37.850 回答