除了按照使用调度的工作流中所述使用 CLI 界面定义调度表外,还可以在对象工作流中的工作流代码中将调度表定义为属性。对象工作流中使用的属性与 CLI 调度表创建中使用的属性不同。
对象工作流中使用以下属性:
|
对工作流具有适当授权的管理员可以更改编码到工作流中的调度表,如使用调度的工作流中所示。
示例 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 指定期间中的单位。在上例中,第二个调度表中的期间设置为一周,并从第二天的凌晨 4:30 开始。可以在属性 schedules 中定义多个调度表。
示例中的对象 MySchedules 使用以下三个属性:
offset-这是调度表自 1970 年 1 月 1 日的起始偏移。偏移量以属性 units 定义的单位进行指定。
period-这是调度的时间间隔,也以属性 units 定义的单位进行指定。
units-此属性可定义为 seconds 或 months。
每周调度表的起始时间是星期四。这是因为 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