【问题标题】:Spring Batch Generic Job DesignSpring Batch 通用作业设计
【发布时间】:2019-03-21 11:09:42
【问题描述】:

我找不到这个问题的正确答案。使用 Spring Batch 框架时,是否可以尝试在一个通用作业中解决所有批处理?

例如,我正在尝试使用相同的作业处理不同的文本文件(具有不同结构的文件)。

我的想法是从调度程序运行作业,将带有我要处理的文件名称的字符串传递给它。然后,我将能够实例化与要处理的文件相关的对象,并且该对象将从一个步骤传递到另一个步骤,并且在每一步中,它将能够回答与其分隔符、字段名称、插入语句,依此类推。

另一方面,我可以为每个文件编写一个作业,但是会重复很多代码。

【问题讨论】:

    标签: java design-patterns spring-batch etl jobs


    【解决方案1】:

    JobStep 是您可能需要的。这是一个委托给工作的特殊步骤。因此,您可以设计一个包含多个子作业的“主”作业(又名JobStep 类型的步骤)。显然,每个子作业都可以是带有步骤等的常规 Spring Batch 作业。这种方法中的主作业是您正在寻找的“一个通用作业”。

    此对象将在每一步中从一个步骤传递到另一个步骤

    这可以通过将执行上下文中的对象(例如文件名)从一个步骤传递到下一个步骤来实现。您可以在Passing Data to Future Steps 中找到有关此方法的更多详细信息以及代码示例。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-12-24
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多