【问题标题】:Can I chain two Spring batch jobs together?我可以将两个 Spring 批处理作业链接在一起吗?
【发布时间】:2018-10-12 20:43:46
【问题描述】:

我们使用 Spring Batch 3.0.8 和 Spring Framework 4。我们定义了许多要快速连续运行的作业: Job1 从远程源加载参考数据,以及 Job2 根据 Job1 中加载的参考数据处理 CSV 输入文件。

通常我们会在运营团队的控制下分别运行 Job1 和 Job2,但对于自动测试,我们希望将 Job1 和 Job2 链接在一起,以便 Job1 完成处理后立即自动启动 Job2。

我们该怎么做?

【问题讨论】:

    标签: spring spring-batch


    【解决方案1】:

    完成此任务的最简单方法是通过 Spring Batch Job。您可以使用作业步骤来启动一项作业。完成后,您可以使用另一个启动第二个。使用侦听器等其他机制也可以工作,但在您描述的用例中,我认为这是最有意义的。

    【讨论】:

    • `完成后,您可以使用另一个启动第二个。` - 我如何启动第二个作业?
    • 我应该补充一点,我们今天使用 CommandLineJobLauncher 在运行时单独启动所有作业(从 cmd 行)。
    【解决方案2】:

    如果可以添加新工作,也可以关注JobStep
    来自它的 Javadoc:

    委派给 Job 来完成其工作的 Step。这是一个很棒的工具 用于管理作业之间的依赖关系,以及模块化复杂 将逻辑步入可单独测试的事物中。工作是 使用可以从步骤中提取的参数执行 执行,因此这一步也可以有用地用作工人 并行或分区执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2023-01-25
      • 2012-06-30
      相关资源
      最近更新 更多