세 가지 시작 도구를 사용하면 자동화를 미리 예약할 수 있습니다.
첫 번째인 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's
CronExpression 문서에 설명되어 있습니다.
예
다음은 몇 가지 예를 보여줍니다.
| 사용 사례 | 초 | 분 | 시간 | 일 | 월 | 요일 | 연도 |
|---|---|---|---|---|---|---|---|
| 24시간마다 자정에 실행 | 0 |
0 |
0 |
? |
* |
* |
* |
| 매주 화요일 오전 6시에 실행 | 0 |
30 |
19 |
? |
* |
3 |
* |
| 2월 한 달 동안 매시간 15분에 실행 | 0 |
15 |
* |
? |
2 |
* |
* |
| 1시간에 한 번 실행 | 0 |
0 |
* |
? |
* |
* |
* |
| 1월부터 3월까지 매일 자정에 실행( 월 1일에 가장 가까운 평일) | 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 시작 도구는 다음 두 가지 매개변수를 사용합니다.
- A
SolarTimeStruct. cronExpression: 일, 월, 요일, 연도 필드로만 구성된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 *")) }