ahb*_*ore 7 java spring spring-batch spring-batch-admin
我有两个不同的工作(实际上更多,但为简单起见假设2).每个作业可以与另一个作业并行运行,但是同一作业的每个实例都应该按顺序运行(否则实例会蚕食彼此的资源).
基本上我希望每个这些作业都拥有自己的作业实例队列.我想我可以使用两个不同的线程池作业启动器(每个都有1个线程)并将作业启动器与每个作业相关联.
有没有办法做到这一点,从Spring Batch Admin Web UI启动作业时会受到尊重?
有一种方法可以为特定作业指定特定作业启动器,但我发现做到这一点的唯一方法是使用 JobStep。
如果您有一个名为“specicJob”的作业,这将创建另一个作业“queueSpecificJob”,因此当您通过 Quartz 或 Spring Batch Web 管理启动它时,它将对“specicJob”执行进行排队。
<bean id="specificJobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name="jobRepository" ref="jobRepository"/>
<property name="taskExecutor">
<task:executor id="singleThreadPoolExecutor" pool-size="1"/>
</property>
</bean>
<job id="queueSpecificJob">
<step id="specificJobStep">
<job ref="specificJob" job-launcher="specificJobLauncher" job-parameters-extractor="parametersExtractor" />
</step>
</job>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7492 次 |
最近记录: |