Go to main content

Oracle® ZFS Storage Appliance 管理ガイド、Release OS8.8.x

印刷ビューの終了

更新: 2021 年 8 月
 
 

ワークフロースケジュールのコード化

Using a Scheduled Workflowの説明に従って CLI インタフェースを使用してスケジュールを定義する代わりに、オブジェクトワークフローのプロパティーとしてワークフローコードでスケジュールを定義できます。オブジェクトワークフローで使用されるプロパティーは、CLI のスケジュール作成で使用されるプロパティーとは異なります。

オブジェクトワークフローでは次のプロパティーが使用されます。

表 163  ワークフロースケジュールのプロパティー
プロパティー
タイプ
説明
offset
数値
定義された期間の開始時点を指定します
period
数値
スケジュールの頻度を定義します
unit
文字列
offset および period の定義で単位として秒と月のどちらを使用するかを指定します

ワークフローにコード化されたスケジュールは、Using a Scheduled Workflowに示すように、ワークフローに対する適切な承認を持つ管理者によって変更できます。

使用例 22  ワークフロープロパティーの使用

次のコード例は、プロパティーの使用方法を示しています。インライン演算を使用することで、offset や period の宣言が読みやすくなっていることに注意してください。

// Example of using Schedule definitions within a workflow 
var MyTextObject = {
    MyVersion:  '1.0',
    MyName:     'Example 9',
    MyDescription:  'Example of use of Timer',
    Origin:     'Oracle'
};

var MySchedules = [
    // half hr interval
    { offset: 0, period: 1800, units: "seconds" },
    // offset 2 days, 4hr, 30min , week interval
    {offset: 2*24*60*60+4*60*60+30*60, period: 604800,units: "seconds" }
];

var workflow = {
    name:       MyTextObject.MyName,
    description:    MyTextObject.MyDescription,
    version:    MyTextObject.MyVersion,
    alert:      false,
    setid:      true,
    schedules:  MySchedules,
    scheduled:  true,
    origin:     MyTextObject.Origin,
    execute:    function () {
                audit('workflow started for timer');
               }
}

オブジェクト MySchedules のプロパティー units は、プロパティー offset および period で使用される単位の種類を指定します。これらは、seconds または month に設定できます。プロパティー period はイベントの頻度を指定し、offset はその期間内の単位を指定します。上記の例では、2 番目のスケジュールの期間が 1 週間に設定されていて、2 日目の午前 4:30 に開始します。プロパティー schedules には複数のスケジュールを定義できます。

この例のオブジェクト MySchedules では、次の 3 つのプロパティーが使用されています。

  • offset - これは、1970 年 1 月 1 日からの、スケジュールの開始オフセットです。このオフセットは、プロパティー units で定義された単位で表されます。

  • period - これはスケジュールが繰り返される期間であり、同様にプロパティー units で定義された単位で表されます。

  • units - これは seconds または months で定義できます。

週次スケジュールの開始時点は木曜日です。これは、エポックの開始基準として定義されている 1970 年 1 月 1 日が木曜日であったからです。

使用例 23  CLI に表示されるワークフロースケジュール

上記の例では、2 番目のスケジュールの期間で 2 日 4 時間 30 分の開始オフセットを使用します。このため、1970 年 1 月 3 日午前 4:30 が開始日になります。スケジュールは毎週土曜日の午前 4:30 に期限なしで繰り返されます。次に、CLI でのスケジュール表示を示します。

hostname:> maintenance workflows
hostname:maintenance workflows> list
WORKFLOW     NAME                           OWNER SETID ORIGIN        VERSION
workflow-018 Check metaslab_unload_delay    root  false Oracle ZFSSA  1.0
workflow-019 Check metaslab_unload_timeout  root  false Oracle ZFSSA  1.0
workflow-020 Example 9                      root  true  <local>       1.0
workflow-021 Set DNLC size and ncsize       root  false Data and App  2.0
workflow-022 Stop Existing SSH Sessions     root  false <local>       0.2
hostname: maintenance workflows> select name="Example 9"
hostname: maintenance workflow-020> schedules
hostname: maintenance workflow-020 schedules> ls
Schedules:
NAME                 FREQUENCY            DAY                  HH:MM
schedule-000         halfhour             -                    --:00
schedule-001         week                 Saturday             04:30