パラメーターを受け取るSpringBatchジョブがあり、パラメーターは通常、ジョブが実行されるたびに同じです。デフォルトでは、Spring Batchではそのような同じパラメーターを再利用できません...そこで、単純なインクリメントを作成して、次のようにジョブに追加しました。
http://numberformat.wordpress.com/2010/02/07/multiple-batch-runs-with-spring-batch/
標準CommandLineJobRunner
を使用してジョブを実行-next
する場合、インクリメントを使用するにはパラメーターを渡す必要があります。
ただし、JUnitクラス内からエンドツーエンドのジョブテストを実行すると、JobLauncherTestUtils.launchJob( JobParameters )
...を使用して、インクリメントを使用する必要があることを宣言する方法が見つかりません。おそらく、これらのパラメーターを使用して既に実行されているため、ジョブは静かにスキップされます(以下の注を参照)。
このJobParameters
クラスは、名前と値のペアのコレクションを保持することを目的としています...ただし、-nextパラメーターは異なります。ダッシュで始まり、対応する値はありません。いろいろな実験をしてみましたが、コレクションに何かを追加しようとするJobParameters
のはチケットではないようです。
-next
に渡すのと同等のJUnitを知っている人はいますCommandLineJobRunner
か?
注:問題は、インクリメントが無視されていることだと思います。理由は次のとおりです。
- ジョブは最初に機能し、ジョブリポジトリデータベースを消去すると機能します。再試行でのみ失敗します。
- 変数をハードコーディングしてパラメーターを完全に削除すると、ジョブは正常に機能し、再試行します。