-1
私はバネbatch.iに慣れていないため、テキストからcsvに500,000行を読み込んで処理する必要があります。私のアイテムプロセッサは100行を処理するのに5分かかるため、処理と書き込みに約2日間かかります。バネバッチでのマルチスレッディング
アイテムリーダーとプロセッサを同時に呼び出すにはどうすればよいですか?
私はバネbatch.iに慣れていないため、テキストからcsvに500,000行を読み込んで処理する必要があります。私のアイテムプロセッサは100行を処理するのに5分かかるため、処理と書き込みに約2日間かかります。バネバッチでのマルチスレッディング
アイテムリーダーとプロセッサを同時に呼び出すにはどうすればよいですか?
あなたは、並列処理のための「SimpleAsyncTaskExecutor」を使用し、次のように春のアプリケーションコンテキストでそれを使用することができます。
<bean id="taskExecutor"
class="org.springframework.core.task.SimpleAsyncTaskExecutor">
</bean>
、次のように、あなたはいくつかの特定のタスクレットでこののTaskExecutorを指定することができます。
<tasklet task-executor="taskExecutor">
<chunk reader="deskReader" processor="deskProcessor"
writer="deskWriter" commit-interval="1" />
</tasklet>
ここで指定したように、ItemReader、ItemWriter、およびItemProcessorクラスを定義する必要があることに注意してください。 また、並列処理では、並列に実行するスレッドの数を指定するthrottle-limitを指定できます。これは、throttle-limitが指定されていない場合はデフォルトで4です。
ありがとうございます。それは本当に助けになりました。今ではリーダー・プロセッサーとライターが不定期に呼び出されています。これについての考えは? – Chris
@Chris ItemReaderがnullを返すまで、ステップが実行されます。あなたの場合、ItemReaderは決して実行されないので、決して終了しません。春のバッチドキュメントもお読みください。また、あなたの問題を解決した場合は、その答えを受け入れるべきです。 – KayV