1

如何为作业设置一些配置参数,例如输入文件路径。我的用例是,我有一些处理输入文件中的数据的作业,这些作业是作为其他作业的一部分触发的,例如

<job id="jobA">     
    <step id="stepA" >
        <job ref="jobC"/>
    </step>     
</job>


<job id="jobB">     
    <step id="stepB" >
        <job ref="jobC"/>
    </step> 
</job>


<job id="jobC">     
    <step id="stepC" >
        <tasklet ref="steCTasklet" />
    </step>     
</job>

所以在这里,JobA 和 JobB 触发了 jobC。JobC 处理 JobA 和 JobB 提供的输入文件中的数据。如何为 JobA 和 JobB 设置不同的输入文件路径,以便将它们传递给 JobC。

我们可以将它作为参数传递给 JobA 和 JobB,但由于 JobA 和 JobB 是固定的,我不想从外部将它们作为参数传递。

JobA 和 JobB 中不触发其他作业的其他步骤也应该可以访问输入文件路径。

另外我正在使用 spring-batch-admin 所以我不能直接访问作业启动器,因为它有自己的。

4

1 回答 1

1

JobStep可以将 a作为JobParameterExtractor依赖项,允许您从StepExecution. 我们提供的实现是DefaultJobParametersExtractor. StepExecution这会从'中提取作业的参数ExecutionContext(您指定要使用的键)。此实现还包括作为参数传递给子作业的所有父作业的参数。

您可以JobParametersExtractor在下面的链接中阅读有关 的更多信息。 http://docs.spring.io/spring-batch/trunk/reference/html/configureStep.html#external-flows http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch /core/step/job/JobParametersExtractor.html

于 2014-05-08T14:23:09.517 回答