Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring batch Spring批处理:复合tasklet?_Spring Batch - Fatal编程技术网

Spring batch Spring批处理:复合tasklet?

Spring batch Spring批处理:复合tasklet?,spring-batch,Spring Batch,我想创建一个可以由多个tasklet组成的复合tasklet类 像这样: public class FinishingComposableTasklet implements Tasklet { private List<Tasklet> tasklets; public FinishingComposableTasklet(List<Tasklet> tasklets) { this.tasklets = tasklets; } @Over

我想创建一个可以由多个tasklet组成的复合tasklet类

像这样:

public class FinishingComposableTasklet implements Tasklet {

  private List<Tasklet> tasklets;

  public FinishingComposableTasklet(List<Tasklet> tasklets) {
    this.tasklets = tasklets;
  }

  @Override
  public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
    for (Tasklet tasklet : tasklets) {
      tasklet.execute(contribution, chunkContext);
    }
    return RepeatStatus.FINISHED;
  }
}
public类FinishingComposableTasklet实现Tasklet{
私有列表微线程;
公共完成composabletasklet(列出tasklet){
this.tasklets=tasklets;
}
@凌驾
public RepeatStatus execute(StepContribution贡献,ChunkContext ChunkContext)引发异常{
for(微线程微线程:微线程){
tasklet.execute(贡献,chunkContext);
}
返回RepeatStatus.FINISHED;
}
}
我有一种直觉,这实际上是不正确的:

  • 我需要从subtasklet的
  • 如果我需要汇总它们-返回
    FINISHED
    然后
  • 由于某种原因,标准spring批处理类中不存在此类
  • 我的问题是-我应该如何将我的逻辑的较小部分组合成一个步骤/Tasklet/Callable


    如果我将创建这样的复合-这会破坏我的作业的重新启动能力吗?

    您是否需要一个复合tasklet类或包含多个tasklet的作业?您可以用xml定义该作业。我知道我可以将其定义为一个步骤。但是我的定义会非常大,我不确定对于每一件小事我都必须创建单独的步骤。如果您使用springbatch java api builder将taskletsteps添加到作业中,那么每个tasklet都将使用一行程序。您还需要一行将您的tasklet添加到您的tasklet列表中。您是否需要由多个tasklet组成的复合tasklet类或作业?您可以用xml定义该作业。我知道我可以将其定义为一个步骤。但是我的定义会非常大,我不确定对于每一件小事我都必须创建单独的步骤。如果您使用springbatch java api builder将taskletsteps添加到作业中,那么每个tasklet都将使用一行程序。您还需要一行代码将您的小任务添加到小任务列表中。