java - Spring 批处理 : Execution order for multiple JobExecutionListener instances for a single job

标签 java spring-batch listener order-of-execution

给定一个 Spring Batch 作业,该作业配置了一系列 JobExecutionListener 实例,每个监听器的执行顺序是什么。示例:

<job id="myJob" xmlns="http://www.springframework.org/schema/batch">

        <batch:listeners>
            <batch:listener ref="myJobExecutionListener1" />
            <batch:listener ref="myJobExecutionListener2" />
            <batch:listener ref="myJobExecutionListener3" />
            <batch:listener ref="myJobExecutionListener4" />                
        </batch:listeners>

       <!-- job config continues -->
</job>

在上面的例子中,保证监听器是按照配置的顺序执行还是按照随机的顺序执行。我尝试查看 Spring Batch 引用文档,但就我的研究而言,我找不到此文档。

最佳答案

监听器将按照其声明顺序执行。在您的示例中,将按以下顺序调用它们:

myJobExecutionListener1.beforeJob
myJobExecutionListener2.beforeJob
myJobExecutionListener3.beforeJob
myJobExecutionListener4.beforeJob

// .. job output

myJobExecutionListener4.afterJob
myJobExecutionListener3.afterJob
myJobExecutionListener2.afterJob
myJobExecutionListener1.afterJob

关于java - Spring 批处理 : Execution order for multiple JobExecutionListener instances for a single job,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58619936/

相关文章:

java - Return 语句无法从循环中正常工作

java - Hibernate OneToOne 关系 java.lang.NullPointerException

java - quartz 调度程序中的作业被多次调用

spring-batch - 如何设计 spring batch 来避免请求排长队和重启失败的作业

java - 当对象的状态改变时在 Java 中触发事件

java - 尽管使用了flush(),BufferedWriter仍写入部分行

java - 如何从动态html页面获取值?

java - 我们如何在 2 个不同的实例上并行运行一个 Spring Batch 应用程序?

android - 点击 ImageView 获取 X 和 Y 坐标

java - 在java中将鼠标监听器添加到矩形