经常修改源

时间:2015-08-28 13:01:17

标签: spring-batch

我正在使用spring批处理,我想写一份工作,我有一个JPA阅读器,从数据库中选择分页的产品集。然后我有一个处理器可以对每个产品执行一些操作(比如产品A),但是在产品A上执行此操作,物品处理器也会处理其他一些产品(如产品) B,产品C等)。然后处理器将来到产品B,因为它符合读者并由读者给出。但它已经被处理了,所以实际上浪费时间/资源来处理它再次。应该如何解决这个问题 - 春季批次中是否有修改意识的项目阅读器?一个解决方案是在物品处理器中检查产品是否已经被处理,并且只有在没有处理过的情况下才进行处理。但是,检查产品是否已经过程实际上非常耗费资源。

1 个答案:

答案 0 :(得分:2)

我在这里考虑两种方法:

  1. 调整您所谓的"项目" - 项目是从阅读器返回的内容。根据事物的设计,您可能希望构建一个更复杂的阅读器,其中可以包含依赖项,因此只需循环一次。显然,非常取决于您的具体用例。
  2. 使用流程指标模式 - 流程指标模式就是这样。处理项目时,在数据库中设置一个标志,指示它们已被处理。然后,您的读者查询将被配置为仅读取已处理的查询(过滤那些通过流程阶段更新的查询)。