我正在尝试使用 Spring 实现业务需求,并且在事务管理方面存在一些问题。
简单地说,业务需求是
1) 使用一些标准查询数据库 (#1)。
2) 将查询结果写入平面文件。
3) 将数据库(#1) 中的那些记录更新为“已处理”。
4) 作为前 3 步的结果,将记录插入另一个数据库(#2)。
我需要这 4 个步骤是超制裁的。例如,如果第 4 步失败,则应回滚在第 2 步中写入平面文件的最后一项。我找到了“Apache Commons File Resource Manager”来实现文件回滚机制。
我的导师建议我在这类项目中普遍使用 Spring Batch。然而,考虑到 Spring Batch 使用“面向块的处理”风格,用 Spring Batch 实现它看起来相当困难。因为,据我所知,面向块的样式需要为整个块完成第二步,然后它允许在我的实现中继续进行第三步和第四步。
我想我需要一些关于这个项目的一般建议,以及是否为此目的使用 Spring Batch。此外,尝试在并发环境中实现这些需求是否是一个好主意,因为回滚机制对于这种风格将非常复杂。