我想要并行运行作业。我从下面的链接尝试了很多解决方案: -
using spring batch to execute jobs in parallel
How to run spring batch jobs in parallel
我想要的是 - 我有3个Jobs做不同的流程如下: - (我有工作。但现在3) Job1->做学生文件处理
Job2->执行员工文件处理
Job3->任何其他处理
这些工作没有任何相似之处。它们彼此独立。所有作业并行运行。以下是示例代码: -
@Bean
public Job importUserJob() {
return jobBuilderFactory.get("importUserJob")
.incrementer(new RunIdIncrementer())
.listener(listener())
.flow(stepOne()).end().build();
}
@Bean
public Job importUserOtherJob() {
return jobBuilderFactory.get("importUserOtherJob")
.incrementer(new RunIdIncrementer())
.listener(listener())
.flow(stepSecond()).end().build();
}
同样,我有两步: -
stepOne
- >读者,处理和写入数据库和
stepSecond
- >读者,处理和写入数据库
但是,这项工作不是并行运行的。第二个工作等待第一个工作完成。我想并行运行。我还从此链接SimpleAsyncTaskExecutor
向JobLauncher
添加了@Qualifier("asyncJobLauncher")
,甚至在通过此链接自动装配到JobLauncher
时添加了 foreach($orders as $order) {
if($order->status=='pending' && $order->date<CURRENT_DATE)
push_order_to_cancellable_orders_table();
}
- {{3} }。
请告诉我实现并行处理作业的方法。