Go to main content

Oracle® ZFS Storage Appliance 管理指南,发行版 OS8.8.x

退出打印视图

更新时间: 2021 年 8 月
 
 

编码工作流调度表

除了按照使用调度的工作流中所述使用 CLI 界面定义调度表外,还可以在对象工作流中的工作流代码中将调度表定义为属性。对象工作流中使用的属性与 CLI 调度表创建中使用的属性不同。

对象工作流中使用以下属性:

表 163  工作流调度表属性
属性
类型
说明
offset
数字
确定定义期间的起点
period
数字
定义调度表的频率
unit
字符串
指定在 offset 和 period 定义中使用的单位是 seconds 还是 month

对工作流具有适当授权的管理员可以更改编码到工作流中的调度表,如使用调度的工作流中所示。

示例 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 指定用于属性 offsetperiod 的单位类型。它们可以设置为 secondsmonth。属性 period 指定事件的频率,offset 指定期间中的单位。在上例中,第二个调度表中的期间设置为一周,并从第二天的凌晨 4:30 开始。可以在属性 schedules 中定义多个调度表。

示例中的对象 MySchedules 使用以下三个属性:

  • offset-这是调度表自 1970 年 1 月 1 日的起始偏移。偏移量以属性 units 定义的单位进行指定。

  • period-这是调度的时间间隔,也以属性 units 定义的单位进行指定。

  • units-此属性可定义为 secondsmonths

每周调度表的起始时间是星期四。这是因为 epoch 定义为从 1970 年 1 月 1 日开始,当天为星期四。

示例 23  CLI 中显示的工作流调度表

在上例中,第二个调度表中的时间间隔使用的起始偏移量为 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