【问题标题】:Spring batch for rules规则的春季批处理
【发布时间】:2015-04-28 15:34:41
【问题描述】:

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

  1. 从表 A 中读取记录,
  2. 对于表 A 中的每条记录,
    1. 运行大约 10 条业务规则,其逻辑涉及从数据库中读取数据(在每个规则中)和
    2. 在每个规则中写入表B,规则的结果

我还需要一些方法来按需运行表 A 中较小的记录子集的规则。Spring Batch 是一个不错的选择吗?我可以将数据访问逻辑和业务逻辑放在ItemProcessor 中吗?

非常感谢任何帮助。


这是我所做的:

  1. 创建了一个扩展 JdbcCursorItemReaderDiscountReader,它根据日期和其他条件获取折扣计划_返回 DiscountObj 类型的对象
  2. 创建了一个实现 ItemProcessorSalesProcessor,其中我有 (a) SalesReader 应该读取一组不同的表以获取与当前 DiscountObj 中的参数匹配的销售记录 (b) SalesWriter 应该将SalesReader获取的数据写入另一个表。

SalesReader 执行的查询参数是动态的,因为它必须从当前的DiscountObj 中提取。如何为SalesReader 设置PreparedStatement 的值?我尝试使用PreparedStatementSetter,但是,查询甚至在设置值之前就被执行了。

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

【问题讨论】:

  • 我们开始在这里进行对话。你能把更新分成一个新问题吗?

标签: spring spring-batch


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-12-15
    • 2018-05-27
    • 2015-05-13
    • 2017-06-25
    • 2017-10-06
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    相关资源
    最近更新 更多