[spring-batch] BatchSatus, ExitStatus
BatchStatusとExitStatusの定義
スプリング配置中に現在のジョブまたはStepの状態を示す状態があります.
BatchStatusとExitStatusは、これらのステータスのタイプと見なすことができます.
BatchStatusとExitStatusは少し混同されている可能性があります.spring docsによると、両者の間には以下の違いがあります.
正確ではないかもしれませんが、翻訳の場合、BatchStatusはJobとStepの状態を表し、ExitStatusはStepが終了した状態を表します.
(ただし、検索するとJobにもExitStatusがあります.実行中の状態として、実行後の結果の状態として理解できます.)
もう1つの違いは、「BatchStatus」は「端末タイプ」ですが、「ExitStatus」はコンストラクション関数であるStringオブジェクトのExitCodeなので、ユーザーがカスタマイズして使用するのに便利です.
メタテーブル
これらの状態は、メタテーブルにおいて実行されるJobおよびStepの情報を提供する.
BaschStatusはSTATUS列と一致し、ExitStatusはEXIT CODE列と一致する.
BATCH JOB EXECUTION表
BATCH STEP EXECUTION表
Transition
一般的にExitStatusはBatchStatusと同じですが、開発者が変更できます.
開発者は、ExitStatusに基づいて設定することもできます.たとえば、次の手順を使用してどの手順を実行するか、Jobを終了します.
public Job stepNextConditionalJob() {
return jobBuilderFactory.get("stepNextConditionalJob")
.start(conditionalJobStep1())
.on("FAILED") // FAILED 일 경우
.to(conditionalJobStep3()) // step3으로 이동한다.
.on("*") // step3의 결과 관계 없이
.end() // step3으로 이동하면 Flow가 종료한다.
.from(conditionalJobStep1()) // step1로부터
.on("*") // FAILED 외에 모든 경우
.to(conditionalJobStep2()) // step2로 이동한다.
.next(conditionalJobStep3()) // step2가 정상 종료되면 step3으로 이동한다.
.on("*") // step3의 결과 관계 없이
.end() // step3으로 이동하면 Flow가 종료한다.
.end() // Job 종료
.build();
}
以下のとおりです.on()一致するExitCodeをパラメータに渡し,分岐文とする.Jobを終了する方法は、end()、fail()、stop()を呼び出すことによって指定できます.
この処理は、スプリング配置において
transition
と呼ばれる.このように、ジョブを終了する方法がシーケンスのステップフローで終了するのではなく、ユーザ定義の順序でジョブを終了する場合、合計3つの
transition element
:end()、fail()、stop()がある.end:JobのBatchStatusを
COMPLETED
の状態で終了させ、Jobの再起動を防止する.(statusはパラメータとして入れることができます(end()ですが、実際のメタテーブルにはBatchStatusではなくExitCodeと表示されます).
faile:ジョブを
FAILED
状態に停止します.end()とは異なり、Jobの再起動は阻止されません.(失敗したステップから再起動します.)stop:Jobは
STOPPED
状態に停止した.fail()とは異なり、restart stepを必須として指定する必要があります.FAILED
またはSTOPPED
である場合、設定されたブレークポイントからジョブを再起動することができる.transition
がない場合、Jobのstatusは次のようになります.@Bean
public Job job() {
return this.jobBuilderFactory.get("job")
.start(step1())
.build();
}
FAILED
である場合、JobのBatchStatusおよびExitStatusはいずれもFILAED
である.COMPLETED
である場合、JobのBatchStatusおよびExitStatusはいずれもCOMPLETED
である.https://docs.spring.io/spring-batch/docs/current/reference/html/index-single.html#spring-batch-intro
http://hwannnn.blogspot.com/2018/06/step-flow.html
Reference
この問題について([spring-batch] BatchSatus, ExitStatus), 我々は、より多くの情報をここで見つけました https://velog.io/@mu1616/spring-batch-BatchSatus-ExitStatusテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol