バネバッチを使用していますが、ジョブインスタンスが既に存在するため、エラーが発生しました。ジョブパラメータに現在の時刻を追加する必要があります。私は.Hereが私のコードであるジョブ偶然にを追加する場所を把握することができません:私はThe job already exist
エラーを取得し、同じkId
複数回のジョブを実行しようとすると現在のタイムスタンプをジョブパラメータのバネバッチとして渡します。
<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>
ので、私はに現在のタイムスタンプを追加する必要があります私の仕事のパラメータ。 beanのプロパティとして現在のタイムスタンプを追加すると、myPreparedStatmentSetter
で十分でしょうか、それとも別の場所にjobparameterを追加する必要がありますか?正確にどこから雇用パラメータが春のファイルから選んだのですか?私はここに豆にタイムスタンプを追加する必要がある場合には
質問は、ストアドプロシージャを-myされるだけkID
PARAMTERなどを取る、私はmyPreparedStatmentSetter
で同じを追加する必要がある理由、その後、ストアドプロシージャに現在のタイムスタンプを渡す必要がいけません。
また、Javaコードなしでxmlファイルに現在のタイムスタンプを追加するにはどうすればよいですか?ここでEDIT
は私のjobLauncher Beanです
ブロック引用
ブロック引用
jobParameterをjoblauncherに提供する必要がありますので、ジョブの起動方法を詳しく説明してください。 jobParameterは、ステップまたはリーダーの設定とは関係ありません。また、xmlの代わりにJavaの設定を使用することを提案します。 –
@Sabir Khan私はCommandLineJobRunnerを使用しています – user2713255