Redis를 사용한 분산 워크플로우 실행 잠금 - n8n 워크플로우

Redis를 분산 락 메커니즘으로 사용하여 중요한 워크플로우의 동시 실행을 방지하는 강력한 n8n 워크플로우 템플릿입니다. 안정적인 순차적 n8n 자동화를 보장합니다.

워크플로우 미리보기

자동화할 준비가 되셨나요?

이 n8n 워크플로우 템플릿을 다운로드하고 즉시 사용을 시작하세요.

추천 대상

순차적 실행이 필수적인 중요 업무용 예약 n8n 워크플로우 사용자.
n8n 템플릿에서 안정적인 동시성 제어가 필요한 개발자.
n8n 노드를 사용하여 강력한 실행 모니터링 및 흐름 제어를 구현하려는 DevOps 엔지니어.
프로세스 전반에 걸쳐 공유 상태 관리가 필요한 자체 호스팅 n8n 사용자

개요

데이터 동기화나 금융 배치 처리와 같이 병렬 실행을 허용할 수 없는 중요 프로세스를 다룰 때, 작업이 한 번에 한 인스턴스만 실행되도록 보장하는 것이 매우 중요합니다. 이 특정 n8n 워크플로우는 Redis를 이용한 분산 락 구현을 통해 강력한 해결책을 제공합니다. n8n 트리거가 발생할 때마다 시스템은 Redis에 있는 전용 상태 플래그를 확인합니다. 플래그가 'idle'이면 n8n 워크플로우가 진행되고 플래그를 'running'으로 설정한 후 대상 워크플로우를 실행하고 마지막으로 플래그를 다시 'idle'로 재설정합니다. 플래그가 이미 'running' 상태이면 실행이 즉시 종료됩니다. 이는 순차적 처리를 보장하며, Redis n8n 노드로 관리되는 공유 상태를 사용하는 안정적인 고빈도 n8n 자동화에 필수적인 패턴입니다.

작동 방식


  1. 예약된 활성화: 전체 프로세스는 고주파수(예: 5초마다)로 실행되도록 구성된 Schedule n8n 트리거로 시작됩니다.

  2. Redis 상태 확인: Get Status Redis n8n 노드가 이 특정 n8n 워크플로우와 관련된 현재 락 상태(workflowStatus_{{ $workflow.id }})를 동적으로 가져옵니다.

  3. 키 검증 및 존재 여부 확인: If n8n 노드(Redis Key exists)는 먼저 Redis에 상태 키가 존재하는지 확인합니다. 키가 존재하지 않으면 워크플로우는 진행해도 안전하다고 판단하고 락을 설정합니다.

  4. 동시성 게이트: Filter n8n 노드(Continue if Idle)는 핵심 동시성 확인을 수행하여, 가져온 상태 값이 엄격하게 'idle'일 경우에만 n8n 워크플로우가 진행되도록 보장합니다. 상태가 'running'이면 실행은 여기서 중단되어 동시 실행을 방지합니다.

  5. 실행 중 락 설정: 실행이 승인되면 Set Running Redis n8n 노드가 Redis 키를 'running'으로 업데이트하여 분산 락을 설정합니다.

  6. 메인 워크플로우 실행: Execute Workflow n8n 노드가 지정된 ID를 사용하여 대상 중요 n8n 워크플로우를 호출하고 실행합니다. 이 n8n 노드는 하위 워크플로우가 실패하더라도 다음 단계로 계속 진행되도록 구성됩니다.

  7. Idle 락 해제: 마지막으로 Set Idle Redis n8n 노드가 상태 키를 다시 'idle'로 설정하여 락을 해제하고 시스템이 다음 예약된 n8n 트리거를 기다릴 준비를 합니다. 이로써 n8n 워크플로우의 한 번의 성공적인 실행 주기가 완료됩니다.

설치 가이드


  1. n8n 인스턴스에 이 n8n 워크플로우 JSON 코드를 가져옵니다.

  2. Redis 자격 증명: n8n 설정 내에 Redis 자격 증명을 구성합니다. 모든 Redis n8n 노드(Get Status, Set Running, Set Idle)는 이 자격 증명을 사용해야 합니다.

  3. 대상 워크플로우 ID 구성: Execute Workflow n8n 노드를 찾습니다. 동시 실행으로부터 보호하려는 중요 n8n 워크플로우의 ID와 일치하도록 Workflow ID 매개변수를 업데이트해야 합니다.

  4. 초기 상태 설정: 워크플로우에는 문제 해결 섹션(현재 비활성화됨)이 포함되어 있습니다. Schedule n8n 트리거를 활성화하기 전에, Redis 키가 'idle'로 초기화되고 락이 비어 있는지 확인하기 위해 When clicking "Test workflow" -> Reset to Idle 체인을 한 번 수동으로 활성화하고 실행하는 것이 좋습니다.

  5. 활성화: Schedule n8n 트리거를 저장하고 활성화하여 실행 기간 모니터링을 시작합니다.

노드 상세 정보

스케줄 트리거: 타이밍에 따라 전체 프로세스를 시작하는 필수 n8n 트리거입니다(예: 5초마다). 빈도는 보호 대상 n8n 워크플로우의 요구 사항에 따라 조정 가능합니다.
Redis 노드(상태 가져오기): Redis에서 동적 상태 키(workflowStatus_{{ $workflow.id }})를 읽어옵니다. 이 n8n 노드는 현재 락 상태를 검색하는 데 매우 중요합니다.
If 노드(Redis 키 존재 여부): Redis 상태 변수에 값이 채워져 있는지 확인합니다. 키가 비어 있으면 n8n 워크플로우는 깨끗한 상태로 간주하고 실행 중인 락을 설정하기 위해 진행합니다.
필터 노드(Idle 시 계속): 이 n8n 노드는 동시성 게이트 역할을 하며, 상태 키 값이 엄격하게 "idle"과 일치하는 경우에만 데이터 항목을 통과시킵니다.
Redis 노드(Running/Idle 설정): 이 두 개의 Redis n8n 노드가 분산 락을 관리합니다. Set Running은 실행 전에 락을 획득하고, Set IdleExecute Workflow n8n 노드가 완료된 후 락을 해제합니다.
Execute Workflow: 분리된 보호된 n8n 워크플로우를 호출하고 실행하는 핵심 작업 n8n 노드입니다. 올바른 워크플로우 ID를 설정하는 것이 매우 중요합니다.


  • Sticky Note n8n 노드: 템플릿 전반에 걸쳐 사용되며, 특히 간격 설정 및 상태 플래그를 'idle'로 수동 재설정하는 문제 해결 단계에 대한 필수적인 맥락을 제공합니다.

관련 n8n 워크플로우

무료

노드: 8 노드
업데이트됨: 12월 26 2025
모두 보기
작성자

Workflow Optimization Expert | Software Architect. Use my link to book an initial consultation for custom built workflows using n8n.

추천*