InfoGrab DocsInfoGrab Docs

Durable scheduler 소개

durable scheduler는 Schedule Trigger 노드로 시작하는 것과 같은 시간 기반 워크플로를, 각 인스턴스의 메모리 대신 데이터베이스 기반 큐에서 실행합니다. 이 페이지에서는 durable scheduler가 무엇을 변경하는지, 켜는 방법, 작동 방식을 설명합니다. 이를 구성하는 환경 변수는 스케줄러 환경 변수 를 참고하세요. Warning 프리뷰 기능 durable scheduler는 환경 플래그 뒤에 있는 프리뷰 기능입니다. 이 기능이 일반 출시(GA)에 도달하기 전까지 환경 변수와 기본 동작이 변경될 수 있습니다. Note durable scheduler는 기본적으로 꺼져 있으며 점진적으로 롤아웃되고 있습니다. 기존 인스턴스는 옵트인하기 전까지 계속 인메모리 스케줄러를 사용하며 이전과 동일하게 동작합니다. n8n은 먼저 프로덕션이 아닌 환경에서 테스트해볼 것을 권장합니다. 인메모리 스케줄러와 durable scheduler 비교 # n8n은 기본적으로 시간 기반 워크플로를 메모리에서 스케줄링합니다. 각 main 인스턴스는 활성 스케줄이 언제 실행되어야 하는지 스스로 계산하고, 해당 타이머를 자신의 프로세스 안에 보관합니다. 이 방식은 단일 인스턴스에서는 잘 작동하지만 다음과 같은 한계가 있습니다. 재시작 시 대기 중인 실행이 유실됩니다. 인스턴스가 중지되면 메모리 안의 타이머도 함께 사라집니다. n8n은 다운타임 동안 시각이 지난 실행을 나중에 따라잡지 않고 건너뜁니다. 여러 인스턴스에는 리더가 필요합니다. 멀티 메인 구성에서는 리더만 스케줄을 실행합니다. 잘못된 시점에 리더십이 바뀌면 타이밍이 어긋날 수 있습니다. durable scheduler는 스케줄링을 데이터베이스로 옮겨 이 두 가지 문제를 모두 해결합니다. 재시작해도 실행이 유지됩니다. 스케줄러는 예정 시각이 되기 전에 다가오는 각 실행을 데이터베이스에 기록합니다. 재시작해도 실행이 유실되지 않습니다. 인스턴스가 중단된 동안 시각이 지난 실행도 인스턴스가 복구되면 실행되므로, 아예 실행되지 않는 대신 늦게라도 실행됩니다. 각 실행은 인스턴스 전체에서 정확히 한 번만 실행됩니다. 모든 main 인스턴스가 동일한 큐를 공유하며 그 큐에서 실행을 확보(claim)합니다. 각 실행은 하나의 인스턴스만 가져가므로, 작업이 단일 리더에 의존하지 않고 main 인스턴스 전체에 분산됩니다. 기능적으로 달라지는 점 # durable scheduler를 켜면 다음과 같은 동작 변화를 유의하세요. 타이밍 정확도. 스케줄러는 짧은 주기( N8N_SCHEDULER_EXECUTOR_INTERVAL , 기본값 5초)로 예정된 실행을 확인하므로, 실행이 예정 시각으로부터 최대 한 주기만큼 늦게 시작될 수 있습니다. 인메모리 스케줄러는 정확한 시각에 더 가깝게 실행됩니다. 시계 정렬 타이밍이 기본값입니다. "매 N초"와 "매 N분" 스케줄의 경우, N8N_SCHEDULER_TRIGGER_NODE_MODE 를 변경하지 않는 한 durable scheduler는 인메모리 스케줄러와 동일