スプリングバッチのステップ実行時間を測定する正しい方法は何ですか?ここ スプリングバッチステップ実行時間の測定
はステップの一例である:私は私はステップの前と後のステップを持っている必要があり、この場合にItemWriter上のステップの前にIemReaderpublic class xxxxxItemReader implements xxxxItemReader <XXXX>{
private Logger log = LoggerFactory.getLogger(this.getClass());
@Override
public void beforeJob(JobExecution jobExecution) {
//
// Can Log || do some business code
//
log.info("Intercepting Job Excution - Before Job!");
}
@Override
public void afterJob(JobExecution jobExecution) {
//
// Can Log || do some Business code
//
log.info("Intercepting Job Excution - After Job!");
}
}
を使用して、いくつかの例をまく
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.<POJO, POJO> chunk(10)
.reader(pojoReader())
.processor(pojoProcessor())
.build();
}
私ItemWriterとitemReader、そして最後にまとめて(追加)、hollステップの実行時間を取得しますか?それは最善の方法ですか?
フルステップ実行時間は、メタデータで使用できます。チャンクタイム(読み込みプロセス - 書き込み時間)を意味しましたか?個別に読み取り、処理、書き込みするだけですか? –
はい穴の実行ステップ時間を探しています。リスナーを経由せずにこの情報を得ることができる場所はありますか –
なぜとても複雑ですか? 'StepExecution'にはすでに開始時刻と終了時刻が含まれていますので、' afterStep'で計算することができます。あなたは特別なことをする必要はありません。その横にあるバッチ・バッチは、このすべての情報をメタデータ用に選択したデータストア(メモリー内またはデータベース内)に格納します。 –