0

私はいくつかのジョブをスケジュールするために control-M を使用しています。以下は私が直面しているシナリオです:

Job-1 - 毎日実行 (特定の時間ではありません)

Job-2 - 毎月 1 日に注文しますが、10 日頃に実行されます (未定)

次に、Job-2 が Job-1 の実行に依存するようにします。job-2 が 12 日に実行に「適格」になった場合、次のシナリオでのみ実行する必要があります。

  1. 12 番目のジョブ 1 が正常に実行されました
  2. ジョブ 1 の実行が 12 日にスケジュールされていない場合、ジョブ 2 は最後に成功した実行をチェックする必要があります (つまり、おそらく 11 日)。

Job-1 の最後の実行が失敗した場合、Job-2 は実行されません。

私が試したのは、日付を PREV としてジョブ 2 の IN 条件を指定することですが、現在の日付のジョブ 1 の実行をチェックしていないようです。

4

2 に答える 2

1

--> job-1 の場合は、"Nodate" を指定して out-condition を使用します。 --> job-2 の場合、job-1 の nodate outcondition を in-condition として使用します。このジョブ 2 が終了したら、ジョブ 1 の状態を削除します。それに伴い、大館でジョブ2のアウトコンディションを置きます。--> ジョブ 1 の前提条件で、(日付のないジョブ 1 のアウト条件 OR ジョブ 2 のアウト条件と前の日付) を確認し、前提条件でのみ使用した後に条件を削除します。

実行フロー。したがって、job-1 は毎日実行され、nodate を使用して outcondition をデータベースにスローします。翌日実行されると、(job-1 の nodate 条件または job-2 の prev-date out 条件) のうちのいずれかが使用可能な場合はチェックされ、その条件が受け入れられ、データベースとトリガーから同じ条件が削除されます。ジョブ-1。

job-2 が実行されるときはいつでも、その日に job-1 のノード条件がチェックされます。job-1 が成功した場合、そのノードの outcondition が使用可能になり、job-2 をトリガーするために使用できます。job-2 が完了すると、job-1 のノード日付条件が削除されます。また、job-1 の nodate 条件が使用できないため、job-2 の現在の odate outcondition が翌日の job-1 の実行に使用されます。

ありがとう。

于 2018-03-28T19:48:48.603 に答える
0

これに対処するには、いくつかの方法があります。

1 つ目は、ジョブ 1 の 2 つのバージョンを持つことです。ジョブの違いはカレンダーにあります。1 つは、ジョブ 2 が実行される日を除いて、すべての日に実行されます。2 番目は 2 日目にのみ実行され、このジョブは、ジョブ 2 が in 条件として使用する out 条件を作成します。

もう 1 つのオプションは、ジョブ 1 の後処理として out 条件を作成し、ジョブ 2 がこの条件を in 条件として使用し、* * を odate として使用することです。ジョブ 2 が完了したら、この条件を削除することを忘れないでください (これは常に良い方法です)。 .

構文は status = * (または sysout の文字列)、compstat = OK、条件を追加します。

後処理としてジョブ 2 を強制的に実行し、on ステートメントに do force ジョブを追加することもできます。

于 2014-01-27T00:53:17.430 に答える