Migração 100% grátis + 1 mês grátis com cupom MIGRAR1MES · novos clientes em planos até R$ 200/mês Migrar agora

n8n queue mode com Redis

Como configurar n8n em queue mode com Redis e workers separados para escalar workflows com LLMs e webhooks de alta concorrência.

Em produção, rodar o n8n em queue mode evita que um workflow lento (chamada LLM de 30s, por exemplo) trave a fila inteira de webhooks.

Arquitetura

Webhook ──▶ n8n main (HTTP) ──▶ Redis (fila) ──▶ n8n worker(s) ──▶ Postgres
  • main: recebe webhook, enfileira, retorna 200 imediato
  • worker: pega da fila, executa, persiste no Postgres
  • Redis: broker da fila (BullMQ por baixo dos panos)

Pré-requisitos

  • Postgres 14+ (recomendado: container ou serviço externo)
  • Redis 7+
  • VPS com 4+ vCPU e 8 GB RAM

docker-compose.yml mínimo

services:
  postgres:
    image: postgres:16
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: n8n
    volumes:
      - pg_data:/var/lib/postgresql/data
    restart: unless-stopped

  redis:
    image: redis:7-alpine
    restart: unless-stopped

  n8n-main:
    image: docker.n8n.io/n8nio/n8n
    environment:
      EXECUTIONS_MODE: queue
      QUEUE_BULL_REDIS_HOST: redis
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
      DB_POSTGRESDB_DATABASE: n8n
      N8N_HOST: n8n.exemplo.com
      WEBHOOK_URL: https://n8n.exemplo.com/
      N8N_PROTOCOL: https
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
    ports:
      - "5678:5678"
    depends_on: [postgres, redis]
    restart: unless-stopped

  n8n-worker:
    image: docker.n8n.io/n8nio/n8n
    command: worker
    environment:
      EXECUTIONS_MODE: queue
      QUEUE_BULL_REDIS_HOST: redis
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
      DB_POSTGRESDB_DATABASE: n8n
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
    depends_on: [postgres, redis]
    restart: unless-stopped

volumes:
  pg_data:

Escalar workers

Para mais throughput, escale só os workers:

docker compose up -d --scale n8n-worker=4

Cada worker pega 1 job por vez por padrão. Para jobs leves (sem LLM), suba N8N_CONCURRENCY=10 por worker.

Como saber se está funcionando

Procure este log nos workers ao iniciar:

n8n Task Broker is now accepting connections on port 5679
n8n worker is now ready
- version: 1.x.x
- concurrency: 10

E no main:

Editor is now accessible via:
https://n8n.exemplo.com/

Monitoramento

Recomendado expor métricas do BullMQ via /metrics (Prometheus) e plotar no Grafana:

  • Jobs ativos / aguardando / completos
  • Tempo médio de execução por workflow
  • Falhas por hora

Próximos passos

Última atualização: