다음 세 가지 시작 조건을 사용하여 자동화를 미리 예약할 수 있습니다.
첫 번째인 Time.ScheduledTimeEvent를 사용하면 미래의 특정 시점 또는 반복적으로 시계 시간이나 태양 이벤트(일출 또는 일몰)를 기준으로 자동화가 시작되도록 예약할 수 있습니다.
예를 들어 다음 시작 조건은 매일 오후 10시에 자동화를 시작합니다.
starter<_>(structure, Time.ScheduledTimeEvent) { parameter(Time.ScheduledTimeEvent.clockTime(LocalTime.of(22, 0, 0, 0))) }
또는 시계 시간 대신 태양시 이벤트를 지정할 수 있습니다. 이 유형의 시작 조건에 대한 매개변수는 다음으로 구성된 SolarTimeStruct입니다.
type:SolarTimeType.Sunrise또는SolarTimeType.Sunset입니다.offset: 일출/일몰 이벤트와 관련된 시작 시간을 원하는 만큼 변경할 수 있습니다. 양수 값은 태양 이벤트 후 지연을 발생시키고 음수 값은 태양 이벤트 전에 시작 조건이 트리거되도록 합니다.
다음 예는 매일 일출 15분 전에 자동화를 시작하는 시작 조건입니다.
starter<_>(structure, Time.ScheduledTimeEvent) { parameter( Time.ScheduledTimeEvent.solarTime( SolarTimeStruct(SolarTimeType.Sunrise, java.time.Duration.ofMinutes(-15)) ) ) }
두 번째 두 시작 조건은 반복 예약 일정 시작 조건으로, 시간 및 캘린더 기반 조건을 모두 포함할 수 있는 더 구체적인 기준에 따라 주기적으로 실행되는 자동화를 만들 수 있습니다.
Time.RecurringClockTimeScheduledEvent를 사용하면 하나 이상의 시간 또는 날짜 조건을 기반으로 자동화를 예약할 수 있습니다.
이 시작 도구는 Unix cron 유틸리티에서 사용하는 것과 유사한 문법을 사용하여 반복 자동화의 일정을 지정합니다.
Time.RecurringSolarTimeScheduledEvent를 사용하면 일출 또는 일몰 시간을 기준으로 자동화를 예약할 수 있으며, 원하는 경우 캘린더 기반 조건과 함께 사용할 수 있습니다.
cron 표현식
Unix 및 Linux 시스템에서 반복 작업을 예약하는 데 사용되는 명령어인 cron에 이미 익숙할 수 있습니다.
반복 예약 이벤트 시작 조건은 cron에서 사용하는 것과 유사한 예약 표현식 문법을 사용하므로 이러한 시작 조건과 함께 사용되는 예약 표현식을 cron 표현식이라고 합니다.
cron에는 여러 가지 '버전'이 있으며 이러한 구현 전반에 걸쳐 여러 가지 문법 변형이 있습니다. 반복 예약 이벤트 시작 조건 cron 표현식은 Quartz 스케줄러와 동일한 문법을 사용합니다.
Quartz cron 표현식 구문은 Quartz의 CronExpression 문서에 설명되어 있습니다.
예
다음은 몇 가지 예시입니다.
| 사용 사례 | 초 | 분 | 시간 | 일 | 월 | 요일 | 연도 |
|---|---|---|---|---|---|---|---|
| 24시간마다 자정에 실행 | 0 |
0 |
0 |
? |
* |
* |
* |
| 매주 화요일 오전 6시에 실행 | 0 |
30 |
19 |
? |
* |
3 |
* |
| 2월 동안 매시간 15분에 실행 | 0 |
15 |
* |
? |
2 |
* |
* |
| 1시간에 한 번 실행 | 0 |
0 |
* |
? |
* |
* |
* |
| 1월부터 3월까지 매월 1일에 가장 가까운 평일 자정에 24시간마다 실행 | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
| 2월 둘째 주 목요일, 1시간에 한 번, 15분에 | 0 |
15 |
* |
? |
2 |
5#2 |
* |
| 2월 마지막 날에 매시간 15분에 실행 | 0 |
15 |
* |
L |
2 |
? |
* |
| 매주 화요일과 목요일 오전 6시에 실행 | 0 |
30 |
19 |
? |
* |
3,5 |
* |
RecurringClockTimeScheduledEvent
RecurringClockTimeScheduledEvent 시작 조건에서 cron 표현식 문자열은 Time.RecurringClockTimeScheduledEvent.cronExpression 필드에 할당됩니다.
다음은 4월의 매주 수요일 오후 8시에 자동화를 시작하는 RecurringClockTimeScheduledEvent 시작 조건의 예입니다.
starter<_>(structure, event = Time.RecurringClockTimeScheduledEvent) { parameter(Time.RecurringClockTimeScheduledEvent.cronExpression("0 0 20 ? 4 4 *")) }
RecurringSolarTimeScheduleEvent
RecurringSolarTimeScheduleEvent 스타터는 다음 두 가지 파라미터를 사용합니다.
SolarTimeStruct.cronExpression: Day-of-Month, Month, Day-of-Week, Year 필드로만 구성된cron표현식의 하위 집합입니다. 태양시는 자동화가 시작되는 정확한 시간을 결정하므로 초, 분, 시 필드는 생략됩니다.
다음 예는 4월의 매주 수요일에 일출 후 1시간이 지나면 자동화를 시작하는 시작 조건입니다.
starter<_>(structure, event = Time.RecurringSolarTimeScheduledEvent) { parameter( Time.RecurringSolarTimeScheduledEvent.solarTime( TimeTrait.SolarTimeStruct(SolarTimeType.Sunrise, Duration.ofHours(1)) ) ) parameter(Time.RecurringSolarTimeScheduledEvent.cronExpression("? 4 4 *")) }