Вы можете использовать PartitionMapper для программного определения динамического числа разделов для шага с разделами.
Мапперу необходимо создать PartitionPlan *Объект 1008 *, который устанавливает число разделов и предоставляет для каждого свойства, характерные для разделов.
Метод mapPartitions () вашего картографа будет выглядеть примерно так:
public PartitionPlan mapPartitions() throws Exception {
int numPartitions = // calculate number of partitions, however you want
// create an array of Properties objects, one for each partition
Properties[] props = new Properties[numPartitions];
for (int i = 0; i < numPartitions; i++) {
// create a Properties object for this partition
props[i] = new Properties();
props[i].setProperty("abc", ...);
props[i].setProperty("xyz", ...);
}
// use the built-in PartitionPlanImpl from the spec or your own impl
PartitionPlan partitionPlan = new PartitionPlanImpl();
partitionPlan.setPartitions(numPartitions);
// cet the Properties[] onto your plan
partitionPlan.setPartitionProperties(props);
return partitionPlan;
}
И затем вы можете ссылаться на значения свойств, относящихся к разделу, в подстановке следующим образом (аналогично тому, как вы ссылаетесь на статически определенные свойства раздела):
<batchlet ref="myBatchlet">
<properties>
<property name="propABC" value="#{partitionPlan['abc']}" />
<property name="propXYZ" value="#{partitionPlan['xyz']}" />
</properties>
</batchlet>