2

私は2つのステップを持つ仕事をしています。最初のステップは、次の構造を持つフォルダーにファイルを作成することです

src/<timestamp>/file.zip

次のステップでは、このファイルを取得して処理する必要があります

ジョブ パラメータにタイムスタンプを追加したい。各ジョブ インスタンスはタイムスタンプによって区別されますが、最初のステップが完了するまでタイムスタンプはわかりません。ジョブの開始時にタイムスタンプをジョブ パラメータに追加すると、毎回新しいジョブ インスタンスが開始されます。不完全なジョブは無視されます。

4

1 に答える 1

2

代わりに JobExecutionContext を利用できると思います。

ステップ 1 は現在のタイムスタンプを取得し、それを使用してファイルを生成し、JobExecutionContext に配置します。ステップ 2 は JobExecutionContext から読み取ってタイムスタンプを取得します。タイムスタンプは、処理のための入力パスを構築するために使用されます。

このようにステップを分割するアプローチに何かを追加するだけです。これが本当にあなたが望むものであるかどうか、よく考える必要があります。ステップ 1 が完了し、ステップ 2 が失敗した場合、ジョブ インスタンスが再実行されると、ステップ 2 から開始されます。つまり、ファイルはステップ 1 で再生成されません (既に完了しているため)。それがあなたが探しているものなら、それは問題ありません。そうでない場合は、代わりに Step1 と Step2 を 1 つのステップに入れるかどうかを確認できます。

于 2012-07-31T03:50:55.970 に答える