私はautosysを初めて使用します。特定の仕事でポジティブテストとネガティブテストを実行する方法を知っている人はいますか
2 に答える
何をテストしたいかわからない。まず、Autosysの外部で実行するコマンドまたはスクリプトを取得します。その一環として、コマンドまたはスクリプトのエラー処理をテストします。Autosysは、コマンドからのゼロ終了コードを成功として報告するため、エラーからの終了時にスクリプトがゼロ以外の終了コードを送信することを確認してください。次に、sleepコマンドなどのダミーコマンドまたはスクリプトを使用して、autosysジョブがスケジュールどおりに実行されることをテストできます。次に、ライブコマンドまたはスクリプトを使用してテストできます。
特定のジョブをテストするために、ポジティブテストは、ジョブを強制的に開始し、成功するまで実行され、autosysによって実行されたコマンドによって生成されたログがコマンドが成功したことを示した場合です。コマンドジョブに対してネガティブテストを実行するかどうかは、実行されているコマンドまたはスクリプトによって異なります。コマンドまたはスクリプトを失敗させるために、ジョブの外部で何かを変更します。
Autosysは痛々しいほど制限されているようです。JOB1の成功に依存する条件をJOB2に作成できます(例:SUCCESS(JOB1))。しかし、SUCCESSの逆である条件はサポートされていないようです。Autosysは、RUNNING条件とNOTRUNNING条件を提供しますが、残念ながら、NOTSUCCESSを含めるためにそれらを省略しました。
これまでに思いついた最善の回避策は、次のJIL構成を使用することです。
insert_job: 0AM-7AM_BOX
job_type: b
start_times: "00:00"
description: "Succeeds if JOB1 succeeds, TERMINATED if JOB1 does not succeed"
term_run_time: 419
insert_job: CHECK_THE_CONDITION
job_type: c
box_name: 0AM-7AM_BOX
command: date
condition: success(JOB1)
description: "Succeeds if JOB1 succeeds"
insert_job: ACT_ON_THE_CONDITION
job_type: c
command: [put the command you want to execute here]
condition: SUCCESS(CHECK_THE_CONDITION)
description: "Run the run between midnight and 7am if the condition is true"
したがって、JOB1が午前0時から午前7時の間に状態「成功」に入ると、ACT_ON_THE_CONDITIONがすぐに実行されます。コマンドは「date」への単なるダミー呼び出しであるため、これはすぐに実行され、「SUCCESS」にもなります。したがって、0AM-7AM_BOXボックスも「SUCCESS」になります。
もう1つの可能性は、JOB3が午前7時より前に状態「SUCCESS」に入らないことです。この場合、「term_run_time」設定により、ボックスは「TERMINATED」状態になります。
まとめると、
- JOB1がSUCCESSの場合、0 AM-7AM_BOX-> SUCCESS
- JOB1がSUCCESS以外の場合、0 AM-7AM_BOX->TERMINATED
これは、成功条件または終了条件をテストする依存ジョブを設定できるため便利です(TERMINATEDは、条件に入れることができる有効なテストであるため)。