Bloqueio de Execução de Fluxo de Trabalho Distribuído com Redis - Fluxo de trabalho n8n

Utilize este poderoso modelo de fluxo de trabalho n8n para evitar execuções simultâneas de fluxos de trabalho críticos usando o Redis como mecanismo de bloqueio distribuído. Garante automação n8n fiável e sequencial.

Prévia do Workflow

Pronto para automatizar?

Baixe este modelo de fluxo de trabalho n8n e comece a usá-lo instantaneamente.

Para quem é indicado?

Utilizadores que executam fluxos de trabalho n8n agendados e de missão crítica que têm de ser executados sequencialmente.
Programadores que necessitam de controlo de concorrência fiável nos seus modelos n8n.
Engenheiros DevOps que procuram implementar monitorização robusta da execução e controlo de fluxo usando um nó n8n.
Qualquer pessoa que faça a auto-hospedagem do n8n e necessite de gestão de estado partilhado entre processos.

Visão Geral

Ao lidar com processos de missão crítica que não podem tolerar execução paralela — como sincronização de dados ou processamento de lotes financeiros — é crucial garantir que apenas uma instância da tarefa é executada de cada vez. Este fluxo de trabalho n8n específico fornece uma solução robusta ao implementar um bloqueio distribuído usando Redis. Cada vez que o gatilho n8n é acionado, o sistema verifica um indicador de estado dedicado no Redis. Se o indicador for 'idle', o fluxo de trabalho n8n avança, define o indicador como 'running', executa o fluxo de trabalho alvo e, finalmente, redefine o indicador para 'idle'. Se o indicador já estiver 'running', a execução é terminada imediatamente. Isto garante o processamento sequencial, tornando este padrão uma técnica essencial para automação n8n fiável de alta frequência, utilizando estado partilhado gerido por um nó Redis n8n.

Como funciona


  1. Ativação Agendada: O processo começa com o gatilho Schedule n8n trigger, configurado para ser executado a alta frequência (ex: a cada 5 segundos).

  2. Verificação de Estado Redis: O nó Redis n8n Get Status recupera dinamicamente o estado atual do bloqueio (workflowStatus_{{ $workflow.id }}) associado a este fluxo de trabalho n8n específico.

  3. Validação e Existência da Chave: Um nó If n8n node (Redis Key exists) primeiro confirma se a chave de estado existe no Redis. Se não existir, o fluxo de trabalho assume que é seguro prosseguir e define o bloqueio.

  4. Portão de Concorrência: Um nó Filter n8n node (Continue if Idle) executa a verificação de concorrência principal, garantindo que o fluxo de trabalho n8n só avança se o valor da chave de estado recuperado corresponder estritamente a 'idle'. Se o estado for 'running', a execução para aqui, prevenindo execuções simultâneas.

  5. Definir Bloqueio 'Running': Se for autorizado para execução, o nó Redis n8n Set Running atualiza a chave Redis para 'running', estabelecendo o bloqueio distribuído.

  6. Executar Fluxo de Trabalho Principal: O nó n8n Execute Workflow executa o fluxo de trabalho n8n crítico alvo usando o seu ID especificado. Este nó n8n está configurado para sempre continuar a execução para o próximo passo, mesmo que o sub-fluxo de trabalho falhe.

  7. Liberar Bloqueio 'Idle': Finalmente, o nó Redis n8n Set Idle liberta o bloqueio ao definir a chave de estado de volta para 'idle', preparando o sistema para o próximo gatilho n8n agendado. Isto completa o ciclo para uma execução bem-sucedida do fluxo de trabalho n8n.

Guia de Instalação


  1. Importe este código JSON do fluxo de trabalho n8n para a sua instância n8n.

  2. Credenciais Redis: Configure uma credencial Redis na sua configuração n8n. Todos os nós Redis n8n (Get Status, Set Running, Set Idle) devem usar esta credencial.

  3. Configurar ID do Fluxo de Trabalho Alvo: Localize o nó n8n Execute Workflow. Deve atualizar o parâmetro Workflow ID para corresponder ao ID do fluxo de trabalho n8n crítico que pretende proteger contra execução concorrente.

  4. Definir Estado Inicial: O fluxo de trabalho inclui uma secção de resolução de problemas (atualmente desativada). Antes de ativar o gatilho Schedule n8n trigger, é altamente recomendável ativar manualmente e executar a cadeia When clicking "Test workflow" -> Reset to Idle uma vez para garantir que a chave Redis está inicializada como 'idle' e o bloqueio está livre.

  5. Ativar: Guarde e ative o gatilho Schedule n8n trigger para começar a monitorizar as janelas de execução.

Detalhes do Nó

Gatilho de Agendamento (Schedule Trigger): Este gatilho n8n essencial inicia todo o processo de forma temporizada (ex: a cada 5 segundos). A frequência é ajustável com base na necessidade do fluxo de trabalho n8n protegido.
Nó Redis (Get Status): Lê a chave de estado dinâmica (workflowStatus_{{ $workflow.id }}) do Redis. Este nó n8n é vital para recuperar o estado atual do bloqueio.
Nó Se (If Node - Redis Key exists): Verifica se a variável de estado do Redis está preenchida. Se a chave estiver vazia, o fluxo de trabalho n8n assume um estado inicial limpo e avança para definir o bloqueio 'running'.
Nó de Filtro (Filter Node - Continue if Idle): Este nó n8n atua como portão de concorrência, permitindo a passagem de itens de dados apenas se o valor da chave de estado corresponder estritamente a "idle".
Nós Redis (Set Running / Set Idle): Estes dois nós Redis n8n gerem o bloqueio distribuído. Set Running obtém o bloqueio antes da execução, e Set Idle liberta o bloqueio depois de o nó n8n Execute Workflow terminar.
Executar Fluxo de Trabalho (Execute Workflow): O nó n8n de ação principal que chama e executa o fluxo de trabalho n8n protegido e separado. Definir o ID de Fluxo de Trabalho correto aqui é fundamental.


  • Nós n8n Nota Adesiva (Sticky Note n8n nodes): Utilizados em todo o modelo para fornecer o contexto necessário, especialmente em relação à definição de intervalos e passos de resolução de problemas, como redefinir manualmente o indicador de estado para 'idle'.

Fluxos de trabalho n8n relacionados

Grátis

Nós: 8 Nós
Atualizado: Dezembro 26 2025
Ver tudo
Criado por

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

Apresentou*