Comment augmenter la limite par défaut de 10 exécutions parallèles ?

Décrivez le problème/l’erreur/la question

Comment augmenter la limite par défaut de 10 exécutions parallèles ?

Quel est le message d’erreur (le cas échéant) ?

Veuillez partager votre workflow

(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le workflow.)

J’ai essayé les paramètres de concurrence dans n8n et le 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

Mais la configuration ci-dessus n’aide pas. Sur Focum, je ne trouve pas la solution.

Merci beaucoup pour toute aide !

Partagez le résultat renvoyé par le dernier nœud

Informations sur votre configuration d’n8n

  • Version d’n8n : 2.30.7
  • Base de données (par défaut : SQLite) : postgres:16-alpine
  • Paramètre EXECUTIONS_PROCESS d’n8n (par défaut : own, main) : main
  • Exécution d’n8n via (Docker, npm, n8n cloud, application de bureau) : Docker Compose
  • Système d’exploitation : Ubuntu 24.04 LTS 64bit

Salut @mobabel, en attendant une réponse, voici quelques éléments qui pourraient t’aider :

Ressources suggérées

Mise en correspondance automatique avec ta question.

Documentation :

Forum :

@jabbson, @Jesse_Long, @zenithflare - vous avez déjà aidé sur des problèmes similaires, vous pouvez y jeter un coup d’œil ?

Suggestion automatique du bot communautaire de n8n. C’est un projet pilote - partagez vos commentaires ici.

@mobabel

Je l’ai vu, tes paramètres se retrouvent aux mauvais endroits.

  1. N8N_RUNNERS_MAX_CONCURRENCY contrôle les task runners, le sandbox qui exécute les nœuds Code. Ça n’a rien à voir avec le nombre d’exécutions qui tournent en même temps.
  2. N8N_CONCURRENCY_PRODUCTION_LIMIT s’applique à une instance principale fonctionnant en mode régulier. En mode queue, la principale fait juste l’enqueue, donc ça ne fait rien sur l’un ou l’autre conteneur.
  3. N8N_WORKER_CONCURRENCY se trouve sur ton service principal au lieu du worker, donc il est sur le mauvais conteneur de toute façon.

En mode queue, le chiffre qui compte c’est la concurrence propre du worker, par défaut 10, ce qui est exactement la limite que tu atteins. Définis-le sur la commande :

n8n-worker:
command: worker concurrency=30

Recréé le worker après ça. Le débit total est la concurrence multipliée par le nombre de workers, donc mets à l’échelle le service si un worker ne suffit pas.

Merci beaucoup.

J’ai essayé ceci :

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

Après avoir redémarré mon conteneur, j’ai vérifié le journal du 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

J’ai même ajouté un nouveau worker et un nouveau task runner avec la même configuration, mais selon les journaux la Concurrency du worker est toujours 10.

La limite d’exécutions est toujours 10, aucun changement.

Salut @mobabel
concurrency est un drapeau CLI et nécessite les deux tirets, sans eux Docker le passe en tant qu’argument simple et le worker ne le détecte jamais :

command: worker --concurrency=20

La ligne de démarrage indique la valeur réellement utilisée, vous verrez donc Concurrency: 20 une fois qu’elle prendra effet. n8n lit ce nombre à partir de N8N_CONCURRENCY_PRODUCTION_LIMIT chaque fois qu’il est défini sur une valeur autre que -1 et ne se rabat sur le drapeau que s’il n’est pas défini, gardez donc cette variable désactivée sur le worker ou définissez-la sur la même valeur.

Il manque les tirets à la commande. Vous avez worker concurrency=20, il faut --concurrency=20. Sans eux, n8n le traite comme un argument superflu, l’ignore, et revient à la valeur par défaut 10, ce qui est exactement ce que votre journal affiche.

command: worker --concurrency=20

Recréez le conteneur après la modification, docker compose up -d --force-recreate n8n-worker. Le journal devrait alors afficher Concurrency: 20 au démarrage, cette ligne est votre confirmation.

Si vous préférez le définir comme variable d’environnement à la place, N8N_CONCURRENCY_PRODUCTION_LIMIT=20 sur le service worker fait la même chose, mais elle doit être sur le worker, pas sur le principal.

Merci de l’avoir signalé, ça marche maintenant !

Bonjour Willy1,

Je suis toujours confus, même si j’ai configuré la concurrence dans mes workers
worker --concurrency=20

mais depuis l’interface web, il y a toujours seulement 10 tâches en cours d’exécution maximum dans la liste des exécutions. Pourquoi ?