Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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
Java Spring批处理分区:具有多个步骤的从属步骤_Java_Spring_Spring Batch_Partitioning - Fatal编程技术网

Java Spring批处理分区:具有多个步骤的从属步骤

Java Spring批处理分区:具有多个步骤的从属步骤,java,spring,spring-batch,partitioning,Java,Spring,Spring Batch,Partitioning,给定一个使用分区的Spring批处理作业,是否可以有多个分区步骤 例如: <batch:step id="masterStep" next="nextStep"> <partition step="slaveStep1" partitioner="dataPartitioner"> <batch:handler grid-size="10" task-executor="taskE

给定一个使用分区的Spring批处理作业,是否可以有多个分区步骤

例如:

<batch:step id="masterStep"
    next="nextStep">
         <partition step="slaveStep1"
              partitioner="dataPartitioner">
                <batch:handler grid-size="10" task-executor="taskExecutor" />
         </partition>
</batch:step>

在上述示例中,是否可以将另一个
分区步骤
添加到
主步骤
(最好不需要为每个分区步骤提供分区器)?如果没有,是否有其他方法来配置多个步骤,这些步骤将针对每个分区一个接一个地执行

是否可以有多个分区步骤

是的,在一个作业中可以有多个分区步骤

在上面的示例中,是否可以向主步骤添加另一个分区步骤(最好不需要为每个分区步骤提供分区器)

这意味着您将拥有“嵌套的”分区步骤:一个分区步骤,其中每个工作步骤都是一个分区步骤。XSD不允许您这样做,但您可能可以使用Java配置来完成(我从未尝试过,但在我看来,这会使事情变得非常复杂)

如果没有,是否有其他方法来配置多个步骤,这些步骤将针对每个分区一个接一个地执行


你可以试着用a来做这个。其思想是让一个作业具有一个分区步骤,其中每个工作步骤都是一个
作业步骤
。现在,每个worker都是一个包含多个常规步骤(您希望为每个分区运行的步骤)的作业。

您答案的最后一段似乎与我的问题最相关。这意味着在我的示例中,我可以让
slaveStep
封装
slaveJob
。换句话说,我可以将
slaveStep1
定义为
,其中
slaveJob
可以包含尽可能多的
步骤
定义?在这里,每个新分区将执行一个新的
slaveStep
实例,该实例又将在一个绝望的线程中执行一个新的
slaveJob
实例?是的,如果您决定走这条路线,那么每个工作步骤实际上都可以是一个“子”作业。看起来这是无法完成的。有时我会得到一个异常,说“此作业的作业执行已在运行”,而其他时候我会在
MapExecutionContextDao.java:130
上得到一个
slaveJob
NullPointerException
。看起来
slaveJob
无法访问由
dataPartitioner
添加的
stepExecutionContext
中的值,因为它们显示为
null
,即使它们是由
dataPartitioner
添加到
stepExecutionContext
中的