Дерево зависимостей от конфигурации пакета весны - PullRequest
1 голос
/ 28 сентября 2011

Наличие определения работы весны:

<job id="footballJob">
    <!-- Step bean details ommitted for clarity -->
    <step id="playerload" next="gameLoad"/>
    <step id="gameLoad" next="playerSummarization"/>
    <step id="playerSummarization"/>
</job>

Могу ли я постепенно определить порядок выполнения шагов?

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Могу ли я постепенно определить порядок выполнения шагов?

, буквально взяв ваш вопрос, есть несколько вариантов:

  • use Spring Tool Suite afaik может отображать потоки заданий
  • разбирать job.xml самостоятельно, вы даже можете использовать весеннее пакетное задание, которое было бы довольно забавно
  • попытаться получить полный пакетпроцесс установки, начните с spring.handlers и CoreNamespaceHandler.java , вы можете перезаписать его в соответствии с вашими потребностями

Я бы пошел с простым XML-парсером

1 голос
/ 29 сентября 2011

Шаги будут выполнены в порядке, указанном в вашем примере.

Если вы хотите , укажите порядок , который вы можете сделать:

<job id="job">
    <step id="stepA" parent="s1" next="stepB" />
    <step id="stepB" parent="s2" next="stepC"/>
    <step id="stepC" parent="s3" />
</job>

Если вам нужно непоследовательное выполнение шага / условный поток , вы можете сделать:

<job id="job">
    <step id="stepA" parent="s1">
        <next on="*" to="stepB" />
        <next on="FAILED" to="stepC" />
    </step>
    <step id="stepB" parent="s2" next="stepC" />
    <step id="stepC" parent="s3" />
</job>

Для программного управления потоком , в зависимости отExitStatus, вы можете ввести свой собственный decider:

public class MyDecider implements JobExecutionDecider {
    public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {
        if (someCondition) {
            return "FAILED";
        }
        else {
            return "COMPLETED";
        }
    }
}

В конфигурации задания тег «решение» будет указывать решающее устройство, которое будет использоваться, а также все переходы:

<job id="job">
    <step id="step1" parent="s1" next="decision" />

    <decision id="decision" decider="decider">
        <next on="FAILED" to="step2" />
        <next on="COMPLETED" to="step3" />
    </decision>

    <step id="step2" parent="s2" next="step3"/>
    <step id="step3" parent="s3" />
</job>

<beans:bean id="decider" class="com.MyDecider"/>

EDIT :

Если вы хотите получить dependency graph, вы можете просто использовать Spring Tool Suite для визуализации потока, вот простой пример .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...