我可以将两个春季批处理作业链接在一起吗?



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

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

我们该怎么做呢?

实现此目的的最简单方法是通过 Spring 批处理作业。 您可以使用作业步骤启动一个作业。 完成后,您可以使用另一个来启动第二个。 其他机制(如使用侦听器(也可以工作,但在您描述的用例中,我认为这是最有意义的。

如果可以添加新作业,还可以查看JobStep
从它的Javadoc:

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

最新更新