我正在使用弹簧批次,但由于作业实例已存在错误,我需要在我的作业参数中添加当前时间。我无法找出其中添加工作paramters。这里是我的代码:将当前时间戳记作为作业参数弹簧批次
<step id="myStep">
<tasklet>
<chunk reader="myReader" processor="myProcessor" writer="myWriter" commit-interval="6000" skip-limit="9000">
//some more code.
</chunk>
</tasklet>
</step>
<bean id="myReader" class="org.springframework,batch.item.database.StoredProcedueItemReader" scope="step">
//define property for datasource , procedurename , rowmapper, parameters
<property name="preparedStatementSetter" ref="myPreparedStatmentSetter">
</bean>
<bean id="myPreparedStatmentSetter" class="com.mypackage.MyPreparedStatementSetter" scope="step">
<property name="kId" value="#{jobParameters[kId]}">
</bean>
当我试图运行同一kId
多次我得到The job already exist
错误的工作,所以我需要在当前时间戳添加到我的工作参数。 将当前时间戳添加为Bean中的属性,myPreparedStatmentSetter
是否足够,或者是否还需要在其他位置添加作业参数?从spring文件中选取的jobparameters究竟在哪里?
如果我需要添加时间戳到这里的bean是一个问题 - 我的存储过程只需要kID
作为参数,则我不需要当前时间戳传递给存储过程,那么为什么我需要添加相同的myPreparedStatmentSetter
。
另外我如何将当前时间戳记添加到没有Java代码的xml文件中?
编辑
这里是我的jobLauncher豆
块报价
块报价
jobParameter需要提供给joblauncher这样告诉更多您如何开展工作。 jobParameter与步骤或阅读器配置无关。此外,只是建议使用Java配置而不是xml。 –
@Sabir Khan我正在使用CommandLineJobRunner – user2713255