2017-08-23 4 views
1

私の経験では、deciderが呼び出されたとき、このstepExecutionは常にnullです。 JobExecutionDeciderは決済メソッドに提供されているジョブの実行に結びついているようですが、ジョブの判断者は単一のステップに縛られていないため、提供するステップ実行はありません。JobExecutionDeciderに、決定メソッドにstepExecutionが指定されているのはなぜですか?

紛失しているものがありますか? stepExecutionがnullでないJobExecutionDeciderを使用する別の方法はありますか?

答えて

1

stepExecutionがあなたのケースでは、常にnullであることがわかりません。あなたの設定を投稿しておらず、あなたの質問も少しクリアされていないからです。

official documentationに示されたシナリオを参照して、そこに実行step2またはstep3に行く場合someConditionに依存するという構成で説明されている、と述べました。 someConditiontrueまたはfalseを作るためにstepExecution - someConditionはさらに、すなわち、あなたがこのSTEP1を使用している可能性がありstep1実行に依存する可能性があるということ

これは、その状態がどのようなものであり、どのようなものが使用されているかによってまったく異なりますが、step1が実行を停止してその実行が利用可能になった後にその評価が行われるため、いくつかの状況で

また、引用、

、終了ステータスよりも多くの情報がデフォルトのフレームワークで、すでにこの種を使用することを意味している

次を実行するためにどのステップを決定する を必要とすることができますステップの ExitStatusにのみ基づいている決定者のここでそのロジックをオーバーライドして、その決定に追加の列を使用することができます。また

、進行中 JobExecutionの状態に基づいて実行を分岐するAPI docs

戦略を引用。戻り値は、ジョブの次のステップである を決定するステータスとして使用されます。

進行中JobExceutionはステップ実行も含まれるマスターコンテナです。

はまた、ソースでのJavaDocあたりとして、@param stepExecution the latest step execution (may be null)

はそれが役に立てば幸い!

+0

JavaDocは欠落していました(この最新のステップ実行(nullの可能性があります)についての詳細は、デシリアントを説明する春のバッチドキュメントにはありません。ここではhttp:// docsを参照するjavadocへのリンクです.spring.io/spring-batch/apidocs/org/springframework/batch/core/job/flow/JobExecutionDecider.html – churd

+0

嬉しいです! –

関連する問題