春季批量规则

时间:2015-04-28 15:34:42

标签: spring spring-batch

我是Spring Batch的新手。我需要运行一个夜间批处理过程:

  1. 从表A中读取记录,
  2. 表A中的每条记录,
    1. 运行大约10个业务规则,逻辑涉及从数据库(在每个规则中)读取数据和
    2. 在每个规则中写入表B,即规则的结果
  3. 我还需要一些方法来按需运行表A中较小记录子集的规则.Spring Batch是一个不错的选择吗?我可以将数据访问和业务逻辑的逻辑放在ItemProcessor吗?

    非常感谢任何帮助。

    这就是我所做的:

    1. 创建了一个扩展DiscountReader的{​​{1}},它根据日期和其他条件获取折扣程序_返回DiscountObj类型的对象
    2. 创建了一个实现JdbcCursorItemReader的{​​{1}},其中我有(a)SalesProcessor应该读取一组不同的表来获取与当前DiscountObj中的参数匹配的Sales记录(b)SalesWriter应该将ItemProcessor提取的数据写入另一个表。
    3. SalesReader执行的查询的参数是动态的,因为它必须从当前SalesReader中提取。如何将值设置为SalesReader的{​​{1}}?我尝试使用DiscountObj,但是,即使在设置值之前,查询也会执行。

      非常感谢任何帮助/指示。

1 个答案:

答案 0 :(得分:2)

您所描述的是一个非常常见的Spring Batch用例。 Spring Batch的基于块的步骤读取每个项目,将其传递给处理器,然后一旦处理了每个块的项目数,就将所有项目写出来。

使用JdbcCursorItemReader来阅读输入,开发自己的ItemProcessor以应用规则,并使用JdbcBatchItemWriter来编写输出是我期望的。