0
私は複数のジョブを実行しています。ジョブごとに別々のジョブリポジトリ(インメモリ実装)を用意したいと思います。スプリングバッチ:ジョブごとにジョブリポジトリを設定する方法
私が試した豆の定義を以下に見てください。スコーププロトタイプを持つBeanを指定しようとしました。
java.lang.IllegalArgumentException: JobExecution must already be saved
例外が発生します。
<bean id="jobLauncher"
class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name="jobRepository" ref="jobRepository" />
</bean>
<bean id="jobRepository"
class="org.springframework.batch.core.repository.support.SimpleJobRepository"
scope="prototype">
<constructor-arg>
<bean class="org.springframework.batch.core.repository.dao.MapJobInstanceDao"/>
</constructor-arg>
<constructor-arg>
<bean class="org.springframework.batch.core.repository.dao.MapJobExecutionDao" />
</constructor-arg>
<constructor-arg>
<bean class="org.springframework.batch.core.repository.dao.MapStepExecutionDao"/>
</constructor-arg>
<constructor-arg>
<bean class="org.springframework.batch.core.repository.dao.MapExecutionContextDao"/>
</constructor-arg>
</bean>
ジョブリポジトリが一度作成され、ご利用のプロトタイプかどうかは問題ではありませんので、あなたは、ジョブを実行するのですかもう少し説明することができますか? –
これを行うには、独自のJobLauncher実装(およびその他の実装)を作成する必要があるでしょう。 @Michael Langeは、この場合、 'シングル'ジョブレポを作成するシングルトンシンプルジョブランチャーを作成しているため、正しいです。あなたがこれをしようとしている場合は、ジョブごとに少なくとも1つのランチャーを必要とします。 –
なぜジョブごとにレポをしようとしていますか? –