2016-10-24 13 views
0

内で実行中のジョブのafterWriteに耳を傾けるこれは私のステップの設定です:ステップ

@Bean 
Step processEnrollment(@Lazy Job enrollmentProcessor) { 
    return this.steps.get("processEnrollment") 
     .job(enrollmentProcessor) 
     .launcher(this.jobLauncher) 
     .parametersExtractor(DEFAULT_PARAM_EXTRACTOR) 
     .listener(/*StepExecutionListener*/) 
     .build(); 
} 

私の問題は.listener()だけステップ実行リスナーを受け入れることです。ライターリスナーを登録する方法はありますか?私はこの「リスナー」と「内部」の仕事を結合したくありません。

+0

上記のコードであなたの作家はどこですか?その作家は 'Job enrollmentProcessor'の一部ですか? –

+0

writerはenrollmentProcessorの一部であり、外部で聴きたいですが、StepBuilderHelper.Listener()はステップ実行リスナーのみを受け入れます。 –

答えて

0

完全なジョブをステップにラップすると、チャンク、読み取り、または書き込みリスナーを登録できません。

このステップは単にジョブをラップし、ジョブ内で何が起こっているのかわからない。開始時と終了時を知るだけです。リスナーは子要素に伝播されません。 同じ理由で、ジョブにチャンクの登録、リスナーの書き込み、またはリスナーの書き込みを行うことができない理由は同じです。

書き込みリスナーを登録する場合は、enrollmentProcessor-jobの適切な手順でこれを行う必要があります。