問題タブ [itemprocessor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring Batch @BeforeContext が実行に失敗する
春のバッチで、複合アイテム プロセッサを構成する複数のアイテム プロセッサがある状況があります。同じステップで 2 つのプロセッサ間でコンテキスト データを共有する必要があります。以下に示すように、コンテキストにアクセスするための実用的なソリューションを見つけました。それは、少しきれいに見える別の解決策があると言いましたが、それは決して呼び出されない @BeforeStepAnnotation を使用します。可能であれば、2番目のソリューションを使用したいと思います。これを行う方法についてのアドバイスは大歓迎です。
これは機能します:
これは失敗します:
spring-batch - SpringBatch で ClassifierCompositeItemProcessor を使用する場合、ファイル名を StepBuilderFactory stream() を介して FlatFileItemWriter に動的に渡します
を使用して、マルチフォーマット行で複数の入力ファイルを処理していますClassifierCompositeItemProcessor
。しかし、StepBuilderFactory
ストリームを使用してファイルを書き込む場合、Resource
ファイル名を動的に渡すことができません。Filename は、それぞれの入力ファイル名である必要があります。どんな助けでも大歓迎です。
入力ファイル 1 (data-111111-12323.txt)
入力ファイル 2 (data-22222-23244.txt)
期待される出力ファイル 1 (data-111111-12323.txt)
期待される出力ファイル 2 (data-22222-23244.txt)
ステップ
プロセッサ
ライター
java - SpringBatchのItemProcessorで最後のアイテムかどうかを知る方法
私は次の ItemProcessor を持っています。アイテムがリーダーが送信した最後のアイテムであるかどうかを知る必要があります。これは可能ですか?
フローは次のとおりです。
ItemReader
- データベースから行を読み取ります (数百万行が予想されます)ItemProcessor
- 各行でいくつかの検証を実行し、webservice に送信し、webservice 応答でさらに検証を実行します。ItemWriter
- 検証からデータベース エラーを書き込み、ライン ステータスを変更します。
別の可能な解決策は、 ItemReader がLine
sizeのリストを送信するNUMBER_OF_LINES_TO_CALL_WEBSERVICE
ことですが、JpaPagingItemReader
.
リーダーは次のJpaPagingItemReader
とおりです。