問題タブ [jsr352]
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-ee-7 - JEE 7 JSR 352バッチレットからチャンクステップにデータを渡す
標準 (および javadoc) を読みましたが、まだいくつか質問があります。私の使用例は単純です。Batchlet は外部ソースからデータを取得し、データを承認します (つまり、データは承認後に外部ソースから削除されます)。データを確認する前に、バッチレットは、次のチャンク指向のステップに渡される関連する出力 (in-menory-object) を生成します。
質問:
1) バッチレットとチャンク ステップ間でデータを渡すためのベスト プラクティスは何ですか? バッチレットで jobContext#setTransientUserData を呼び出すことでそれができるようです。次に、チャンク ステップで jobContext#getTransientUserData を呼び出すことでそのデータにアクセスできます。
jobContext と stepContext の両方がスレッドローカル方式で実装されていることを理解しています。ここで気になるのは「一過性」の部分です。バッチレットが成功してもチャンクステップが失敗した場合はどうなりますか? 「TransientUserData」データは引き続き使用できますか、それともジョブ/ステップが再開された場合に失われますか? 私のユースケースでは、バッチレットを一度だけ実行することが重要です。そのため、ジョブまたはチャンク ステップが再開された場合でも、正常に実行されたバッチレットからの出力データが保持されることが重要です。それ以外の場合は、バッチレットをもう一度実行する必要があります。(私はすでにデータを承認しており、それはなくなっています。そのため、もう一度バッチレットを実行しても役に立ちません。)
2) フォローアップの質問 stepContext には、getPersistentUserData と setPersistentUserData の 2 つのメソッドがあります。これらのメソッドの使用目的は何ですか? 「永続的」部分とは何を指していますか? これらの方法はパーティショニングのみに関連していますか?
ありがとうございました!/ ダニエル