예약된 워크플로우 사용의 설명에 따라 CLI 인터페이스를 사용하여 일정을 정의하는 대신, 워크플로우 객체에서 등록 정보로 워크플로우 코드에 일정을 정의할 수 있습니다. 워크플로우 객체에 사용되는 등록 정보는 CLI 일정 생성에 사용되는 등록 정보와 다릅니다.
다음 등록 정보가 워크플로우 객체에 사용됩니다.
|
예약된 워크플로우 사용에 표시된 대로 워크플로우에 대해 적절한 권한이 부여된 관리자는 워크플로우에 코딩된 일정을 변경할 수 있습니다.
예 22 워크플로우 등록 정보 사용다음 코드 예에서는 등록 정보의 사용을 보여 줍니다. 인라인 산술을 활용하면 오프셋 및 기간 선언을 보다 쉽게 읽을 수 있습니다.
// 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 객체의 단위 등록 정보는 offset 및 period 등록 정보에 사용되는 단위의 유형을 지정합니다. seconds 또는 month로 설정할 수 있습니다. period 등록 정보는 이벤트의 빈도를 지정하고 offset은 기간 내 단위를 지정합니다. 위 예에서 두번째 일정의 기간은 두번째 날 오전 4시 30분부터 1주일 동안으로 설정되어 있습니다. 일정 등록 정보에서 여러 일정을 정의할 수 있습니다.
예에 나오는 MySchedules 객체는 다음 세 개의 등록 정보를 사용합니다.
offset - 일정에서 1970년 1월 1일부터의 시작 오프셋입니다. 오프셋은 units 등록 정보를 통해 정의된 단위로 제공됩니다.
period - units 등록 정보를 통해 정의된 단위로 제공되는 일정 반복 사이의 기간입니다.
units - seconds 또는 months로 정의할 수 있습니다.
주간 일정의 시작 지점은 목요일입니다. 이는 시대가 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