我有一个职务流程,我想按以下方式运行:
Job1 -> Job2 -> Job3
-> Job4 -> Job5作业流将从Job1启动。在Job1成功完成后,Job1将同时启动Job2和Job4。
Job2和Job4将并行运行。
Job2成功完成后,Job2将启动Job3。
Job4成功完成后,Job4将启动Job5。
下面是Job1的Job1 1.xml和Job1类的代码片段:
job1.xml
<bean id="uiJobListener"
class="com.joblaunch.UIJobListener">
<property name="vmInfoImportUIBatchLauncher" ref="vmInfoImportUIBatchLauncher" />
<property name="jobRepository" ref="jobRepository" />
</bean>
<bean id="uiBatchLauncher"
class="com.joblaunch.UIBatchLauncher">
<property name="simpleJobLauncher" ref="simpleJobLauncher" />
<property name="jobLocator" ref="jobRegistry" />
<property name="jobTwo" value="Job2" />
<property name="jobFour" value="Job4" />
</bean>
<batch:job id="Job1" restartable="true">
<batch:step id="stp01">
<batch:tasklet ref="stp01Operator" />
<batch:next on="COMPLETED" to="stp02" />
</batch:step>
<batch:step id="stp02">
<batch:tasklet ref="stp02Result" />
</batch:step>
<batch:listeners>
<batch:listener ref="uiJobListener" />
</batch:listeners>
</batch:job>UIJobLauncher.java
Job jobOne = jobLocator.getJob(jobTwo);
simpleJobLauncher.run(jobOne, builder.toJobParameters());
Job jobTwo = jobLocator.getJob(jobFour);
simpleJobLauncher.run(jobTwo, builder.toJobParameters());问题
但是,当我创建Job1时,Job1推出了Job2,Job2继续使用Job3。
Job3完成后,Job1推出了Job4,Job4继续使用Job5。
"Job2,Job3“对和"Job4,Job5”没有并行运行。尽管Job1启动了Job4,但工作流程如下:
Job1 -> Job2 -> Job3 -> Job4 -> Job5那么,如何并行运行spring批处理作业呢?是否有一种方法可以从spring管理UI和命令行并行运行Spring批处理作业?
发布于 2014-08-05 12:11:01
工作不能像你要求的那样自然处理。
您必须创建一个新的超级作业,并根据您的喜好使用“分裂流”配置重定向作业。
当然,拆分适用于步骤而不是作业,但SB有可能使用JobStep将作业包装成一个步骤。
遵循官方文档和关于在网络上拆分的示例,您应该能够毫无问题地解决您的问题。
https://stackoverflow.com/questions/25137215
复制相似问题