Spring Batch: порядок выполнения для нескольких экземпляров JobExecutionListener для одного задания - PullRequest
0 голосов
/ 30 октября 2019

С учетом задания 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 , но я не смог найти это документально, так как мои исследования идут.

1 Ответ

1 голос
/ 30 октября 2019

Слушатели будут выполняться в порядке их объявления. В вашем примере они будут вызваны в следующей последовательности:

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

// .. job output

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