我们正在尝试使用Spring批处理分区来实现批处理作业。在“步骤2”中,这是一个分区的步骤,在该步骤中,我需要来自步骤1的一些数据进行处理。这个数据。
我试图在partitioner类中使用@BeforeStep批注来获取stepExecutionContext,从中可以提取先前存储的数据并将其放入分区器的ExecutionContext中。但是带有@BeforeStep批注的方法未在分区器中调用。
还有其他方法可以实现这一目标。
分区器实施
public class NtfnPartitioner implements Partitioner {
private int index = 0;
String prev_job_time = null;
String curr_job_time = null;
private StepExecution stepExecution ;
ExecutionContext executionContext ;
@Override
public Map<String, ExecutionContext> partition(int gridSize)
{
System.out.println("Entered Partitioner");
List<Integer> referencIds = new ArrayList<Integer>();
for (int i = 0; i < gridSize;i++) {
referencIds.add(index++);
}
Map<String, ExecutionContext> results = new LinkedHashMap<String,ExecutionContext>();
for (int referencId : referencIds) {
ExecutionContext context = new ExecutionContext();
context.put("referenceId", referencId);
context.put(NtfnConstants.PREVIOUS_JOB_TIME, prev_job_time);
context.put(NtfnConstants.JOB_START_TIME, curr_job_time);
results.put("partition." + …Run Code Online (Sandbox Code Playgroud) 01 g1.
05 h1 PIC X VALUE 'N'.
88 s1 VALUE 'Y'.
88 s2 VALUE 'N'.
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,s1和s2的值是多少?它是否保持组变量(05)中给出的值,或者它将具有自己的值?