Como aumentar o limite padrão de 10 execuções paralelas?

Descreva o problema/erro/pergunta

Como aumentar o limite padrão de 10 execuções paralelas?

Qual é a mensagem de erro (se houver)?

Por favor, compartilhe seu workflow

(Selecione os nós em sua tela e use os atalhos de teclado CMD+C/CTRL+C e CMD+V/CTRL+V para copiar e colar o workflow.)

Tentei as configurações de concorrência no n8n e no worker.

    n8n:
        image: docker.n8n.io/n8nio/n8n:${N8N_VERSION}
        restart: unless-stopped
        environment:
            - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
            - TZ=${GENERIC_TIMEZONE}
            - EXECUTIONS_MODE=queue
            - N8N_RUNNERS_MAX_CONCURRENCY=20
            - N8N_CONCURRENCY_PRODUCTION_LIMIT=30
            - N8N_WORKER_CONCURRENCY=30

    n8n-worker:
        image: n8nio/n8n:${N8N_VERSION}
        restart: always
        command: worker
        environment:
            - 'GENERIC_TIMEZONE=${GENERIC_TIMEZONE:-Europe/Berlin}'
            - 'TZ=${TZ:-Europe/Berlin}'
            - EXECUTIONS_MODE=queue
            - N8N_RUNNERS_MAX_CONCURRENCY=20
            - N8N_CONCURRENCY_PRODUCTION_LIMIT=30

Mas a configuração acima não ajuda. No Focum, não consigo encontrar a solução.

Muito obrigado por qualquer ajuda!

Compartilhe a saída retornada pelo último nó

Informações sobre sua configuração de n8n

  • Versão do n8n: 2.30.7
  • Banco de dados (padrão: SQLite): postgres:16-alpine
  • Configuração de EXECUTIONS_PROCESS do n8n (padrão: own, main): main
  • Executando n8n via (Docker, npm, n8n cloud, aplicativo desktop): Docker Compose
  • Sistema operacional: Ubuntu 24.04 LTS 64bit

Ei @mobabel, enquanto você aguarda uma resposta, aqui estão algumas coisas que podem ajudar:

Recursos sugeridos

Automaticamente correspondido à sua pergunta.

Documentos:

Fórum:

@jabbson, @Jesse_Long, @zenithflare - vocês já ajudaram com problemas similares, podem dar uma olhada?

Sugerido automaticamente pelo bot comunitário do n8n. É um piloto - compartilhe seu feedback aqui.

Ei @mobabel

Vi isso, suas configurações estão chegando nos lugares errados.

  1. N8N_RUNNERS_MAX_CONCURRENCY controla os task runners, a sandbox que executa nós Code. Não tem nada a ver com quantas execuções são executadas ao mesmo tempo.
  2. N8N_CONCURRENCY_PRODUCTION_LIMIT se aplica a uma instância principal em execução no modo regular. No modo fila, a principal apenas enfileira, então não faz nada em nenhum container.
  3. N8N_WORKER_CONCURRENCY está no seu serviço principal em vez do worker, então está no container errado de qualquer forma.

No modo fila, o número que importa é a concorrência do próprio worker, padrão 10, que é exatamente o limite que você está atingindo. Defina-o no comando:

n8n-worker:
command: worker concurrency=30

Recrie o worker depois disso. A taxa de transferência total é concorrência vezes contagem de workers, então dimensione o serviço se um worker não for suficiente.

Muito obrigado.

Acabei de tentar isto:

    n8n-worker:
        image: n8nio/n8n:${N8N_VERSION}
        container_name: n8n-worker
        restart: always
        command: worker concurrency=20

Depois de reiniciar meu contêiner, verifiquei o log do worker:

n8n Task Broker ready on 0.0.0.0, port 5679
Discovered 4 cluster checks

n8n worker server listening on port 5678

n8n worker is now ready
 * Version: 2.30.7
 * Concurrency: 10

Até adicionei um novo worker e um novo task runner com a mesma configuração, mas pelos logs a Concorrência do worker é sempre 10.

O limite de execuções continua 10, nenhuma mudança.

Oi @mobabel
concurrency é uma flag CLI e precisa dos dois travessões, sem eles Docker a passa como um argumento simples e o worker nunca a reconhece:

command: worker --concurrency=20

A linha de inicialização informa o valor realmente em uso, então você verá Concurrency: 20 lá assim que for ativado. n8n lê esse número da variável N8N_CONCURRENCY_PRODUCTION_LIMIT sempre que ela estiver definida como qualquer coisa diferente de -1 e só volta para a flag quando não estiver, então mantenha essa variável desativada no worker ou defina-a para o mesmo valor.

O comando está faltando os hífens. Você tem worker concurrency=20, mas precisa ser --concurrency=20. Sem eles, o n8n trata como um argumento solto, ignora e volta para o padrão 10, que é exatamente o que seu log está mostrando.

command: worker --concurrency=20

Recrie o container após a alteração, docker compose up -d --force-recreate n8n-worker. O log deve então imprimir Concurrency: 20 na inicialização, essa linha é sua confirmação.

Se preferir defini-lo como variável de ambiente, N8N_CONCURRENCY_PRODUCTION_LIMIT=20 no serviço worker faz a mesma coisa, mas tem que estar no worker, não no principal.

Obrigado por apontar isso, agora funciona!

Oi Willy1,

Ainda estou confuso, mesmo tendo configurado a concorrência nos meus workers
worker --concurrency=20

mas na interface web, sempre há no máximo 10 tarefas em execução na lista de execuções. Por quê?

Confirmado, mesmo as execuções exibidas na webui são apenas 10, mas na verdade as execuções em execução nos workers do backend são mais de 10.