개발자 도구 · Crontab 생성기
크론 및 일광 절약 시간제: 02:30 작업이 건너뛰거나 두 번 실행될 수 있는 이유
· 그것이 중요한 이유
크론 시간대 일광 절약 시간제
1년에 두 번 벽시계가 점프하고 간격이나 중복에 예약된 크론 작업이 예기치 않게 작동합니다. 이 게시물에서는 Vixie에서 파생된 크론이 수행하는 작업, 다른 크론이 수행하는 작업 및 관련 일정을 계획하는 방법에 대해 설명합니다.
선택한 구역에 벽시계 시간이 없는 경우 미리보기 후보 누락이 발생할 수 있습니다.
선택한 시간대가 시계를 앞으로 이동하는 날짜에는 일일 벽시계 시간이 없을 수 있습니다. ToolAcre는 존재하지 않는 로컬 분에 대해 인스턴스를 반환하지 않고 다음 실행 목록에서 건너뛰는 방식으로 해당 사례를 나타냅니다. 표현식은 계속 유효합니다. 하나의 달력 후보는 해당 영역에서 실제 순간으로 변환될 수 없습니다.
이 동작은 제안된 현지 날짜 및 시간을 변환하고 동일한 영역에서 결과 형식을 다시 지정하고 모든 구성 요소를 비교하는 `wallClockToEpoch`에서 구현됩니다. 불일치는 null을 반환합니다. `nextRuns`은 null 후보를 무시하고 검색을 계속하여 조작된 인근 시간이 일정과 정확히 일치하는 것처럼 나타나는 것을 방지합니다.
두 가지 이벤트 - 한 시간을 제거하는 봄 전진과 한 시간을 반복하는 가을 후퇴
시계 변경은 두 가지 개념적 사례를 생성합니다. 즉, 절대 발생하지 않는 벽 시간이 있는 전방 간격과 일부 레이블이 두 번 이상 발생하는 후방 중첩입니다. 저장소에는 앞으로 변경되는 일일 현지 시간을 유지하고 존재하지 않는 봄 시간을 생략하기 위한 테스트가 있습니다. 완전한 중복 정책 테스트 스위트가 포함되어 있지 않습니다.
스케줄러 구현은 뚜렷한 선택을 할 수 있기 때문에 증거 경계가 중요합니다. 이 문서에서는 범용 데몬 동작이 아닌 브라우저 미리보기 알고리즘에 대해 설명합니다. 시계 전환 중 반복 작업에 의존하기 전에 미리보기를 실행 약속으로 승격시키는 대신 대상 호스트에서 실제 스케줄러를 읽고 테스트하십시오.
ToolAcre는 존재하지 않는 현지 시간을 생략합니다. 모든 Vixie 파생 데몬 정책을 모델링하지는 않습니다.
통합 문서에서는 특정 Vixie 파생 데몬이 점프 후 건너뛴 작업을 실행하고 중복을 억제한다고 주장했습니다. ToolAcre는 미리보기 코드에서 두 가지를 모두 수행하지 않습니다. 즉, 로컬 구성 요소가 왕복할 수 없는 후보를 생략합니다. 데몬 패키지가 호출되지 않으며 따라잡기 정책도 모델링되지 않습니다. 따라서 이러한 운영 주장은 반복되기보다는 수정됩니다.
테스트된 런던 예시에서는 3월 2026 변경 사항을 전후하여 01:30을 검색합니다. 해당 현지 분은 전환 날짜에 존재하지 않으므로 반환되는 날짜는 다음과 같은 유효한 날짜입니다. 이는 경로 자체의 목록 동작을 증명합니다. 별도로 설치된 cron 프로세스가 이미 저장된 라인으로 수행하는 작업을 설정하지 않습니다.
외부 데몬의 와일드카드 예약 동작은 저장소 증거 외부에 있습니다.
별은 파서에 의해 허용되는 모든 값으로 확장되지만 나중에 벽시계 변환을 통해 특정 날짜-시간이 순간에 매핑되는지 여부가 결정됩니다. ToolAcre에는 "와일드카드 작업"에 대한 별도의 외부 데몬 규칙이 없습니다. 모든 후보자는 동일한 달력 검색 및 구역 전환 코드를 통해 이동합니다.
설명은 순전히 문법적으로 유지됩니다. `* * * * *`는 매 분으로 읽히는 반면 단계별 분 필드는 단계 단어를 받습니다. 이 문장은 전환 정책을 설명하지 않습니다. 도구의 계산된 예에 대해 다음 실행 목록을 사용하고, 문장만으로 따라잡기, 재시도 또는 중복 억제 보장을 추론하지 마십시오.
다른 구현은 이 브라우저 미리보기에서 추론되지 않습니다.
영역 구현은 브라우저 또는 노드 런타임에 의해 노출된 `Intl.DateTimeFormat` 데이터에 의존합니다. ToolAcre는 제공된 IANA 영역 이름을 검증하고, 사용 가능한 경우 엔진의 지원 목록을 제공하며 UTC를 포함합니다. BusyBox, 컨테이너 오케스트레이터 또는 클라우드 크론 제품은 검사하지 않습니다.
다른 스케줄러가 동의하지 않는 경우 이를 방언 및 런타임 질문으로 처리합니다. 해당 버전, 영역 구성 및 관찰된 전환 동작을 기록합니다. 브라우저 미리보기는 여전히 투명한 비교에 유용하지만 해당 코드는 다른 서비스가 적용하는 정책이나 해당 서비스가 누락된 작업을 재시도하는지 여부를 응답할 수 없습니다.
작업된 예: 벽 시간을 선택하고 ToolAcre의 계산된 후보를 검사합니다.
더 안전한 작업 방법은 배포 영역을 선택하고, 제안된 일일 표현식을 입력하고, 해당 환경에 알려진 다음 전환 날짜를 검사하는 것입니다. 필수 후보가 없는 경우 대상이 명시적으로 문서화한 다른 벽 시간이나 스케줄러 정책을 선택합니다. 시간을 변경한 후 미리보기를 다시 실행하세요.
소스에는 02:30에 사전 설정이 포함되어 있지만 사전 설정은 예시일 뿐 보편적인 권장 사항은 아닙니다. 유효성은 선택한 달력과 영역에 따라 다릅니다. ToolAcre의 5개 결과 창은 먼 전환에 걸쳐 있지 않을 수 있으므로 구현 동작을 감사할 때 테스트에서 적합한 시작 컨텍스트를 선택하십시오.
영역 선택은 이 미리보기의 일부이며 여기서는 도구 동작으로만 설명됩니다.
통합 문서의 분리와 달리 영역 처리는 이 도구 미리 보기의 일부입니다. 패널은 "다음 실행 항목 표시"를 묻고 cron을 실행하는 머신이 리더와 다른 영역을 사용할 수 있음을 경고합니다. 영역을 선택하면 표현식의 벽시계 필드를 유지하면서 결과 순간이 변경됩니다.
선택 항목은 브라우저 계산만 구성합니다. 시간대 지시문을 작성하거나 서버를 업데이트하거나 복사된 표현식에 선택 항목을 포함하지 않습니다. 인접한 배포 문서에서 의도한 영역을 보존한 다음 해당 환경에 대해 입증된 메커니즘을 통해 실제 스케줄러를 구성합니다.
요약: 목록을 실행 보장으로 취급하지 않고 의도한 영역에서 미리보기
다음 실행 목록은 시작 순간, 달력 산술 및 브라우저 영역 데이터 등 5개 필드의 모델 출력입니다. 존재하지 않는 시간과 우발적인 시간 이동을 감지하는 데 유용합니다. 이는 데몬 추적이나 명령이 실행되었다는 증거로 남지 않습니다.
미리보기를 사용하여 위험한 벽 시간을 식별한 다음 전환 경계에서 대상 스케줄러를 확인합니다. ToolAcre의 방어 가능한 약속은 좁습니다. 일일 작업은 해당 시간이 존재할 때 선택한 현지 시간에 유지되고 존재하지 않는 현지 후보자는 생략됩니다. 그 이상의 모든 것은 배포된 시스템에 속합니다.