Bonjour à tous,
J’ai un problème avec les déclencheurs d’horaire qui génèrent trop d’exécutions et je ne sais pas comment le résoudre. Ce que mon workflow fait :
J’ai un système d’automatisation du support client. Lorsqu’un client soumet une demande de support, les données vont dans une feuille Google. Un responsable examine ensuite la demande et remplit une colonne « Décision » (acceptée / refusée / escalader).
J’ai 3 workflows, chacun interrogeant un onglet différent de la feuille Google toutes les 2 minutes :
Déclencheur d’horaire (toutes les 2 min)
Récupérer toutes les lignes de la feuille Google
Nœud de code : filtrer les lignes dont la colonne Décision vient d’être remplie ET n’a pas encore été traitée
Nœud Switch : acheminer en fonction de la valeur de la décision
Actions : envoyer un e-mail au client, mettre à jour le statut de la feuille, créer un ticket de support, etc.
Donc la plupart du temps, le workflow s’exécute, ne trouve rien à faire et s’arrête. Ce n’est que lorsque le responsable remplit une décision qu’il fait réellement quelque chose. Le problème :
Je vois beaucoup trop d’exécutions s’accumuler. Lorsque le serveur redémarre, j’obtiens une énorme explosion — des dizaines d’exécutions à exactement le même horodatage, un mélange d’Erreurs (~40s) et d’Annulées (~1m7s).
Je pense que n8n essaie peut-être de « rattraper » tous les exécutions programmées manquées pendant que le serveur était arrêté. Ou peut-être que le déclencheur se déclenche plusieurs fois simultanément avant que l’exécution précédente se termine. Mes questions :
Comment puis-je prévenir cette explosion d’exécutions au démarrage ?
Y a-t-il un moyen de limiter les exécutions simultanées par workflow ?
L’interrogation de Google Sheets toutes les 2 minutes avec un déclencheur d’horaire est-elle une bonne approche, ou existe-t-il un meilleur modèle pour ce cas d’usage ?
Merci beaucoup !
@Arthur_Mascot le burst au démarrage est des exécutions manquées à rattraper — Schedule Trigger se déclenche une fois par intervalle manqué par défaut quand n8n revient. il y a un paramètre pour désactiver ça directement sur le nœud trigger. avant les détails cependant — tu utilises n8n cloud ou self-hosted? les leviers d’exécution concurrente sont différents selon l’environnement. aussi utile de signaler: Google Sheets a une opération Trigger node qui surveille les changements de lignes nativement, beaucoup plus efficace que de faire un polling toutes les 2 min, mais seulement si ta version l’expose.
Bonjour @Arthur_Mascot Bienvenue !
As-tu essayé de supprimer tout le workflow et de le réimporter ? Ainsi il obtiendra un nouvel ID et les exécutions fantômes seront effacées. Tu peux réduire le nombre d’exécutions concurrentes dans ton instance, pas par workflow je suppose.
En regardant ton workflow, il serait préférable d’ajouter un déclencheur Google Sheet plutôt que de tout interroger à chaque fois et d’ajouter des nœuds d’attente entre les deux
Pour le paramètre sur le Schedule Trigger — où exactement se trouve le réglage pour désactiver le rattrapage des exécutions manquées ? Je ne le vois pas dans les settings du nœud.
Très intéressé aussi par l’approche Google Sheets Trigger — justement mon workflow filtre exactement sur la colonne “Décision” : il récupère toutes les lignes avec le statut en_attente_validation et vérifie si la colonne “Décision” a été remplie. Est-ce que le trigger natif peut surveiller spécifiquement cette colonne et se déclencher uniquement quand une nouvelle valeur y est ajoutée ?
Bienvenue @Arthur_Mascot dans notre communauté ! Je suis Jay et je suis un créateur certifié n8n.
Pour désactiver le rattrapage, ouvrez votre nœud Schedule Trigger et recherchez le bouton bascule « Fire on startup catch-up » - il se trouve dans le panneau des paramètres du nœud. Désactivez-le et n8n cessera de tenter d’exécuter tous les intervalles manqués au redémarrage. C’est la solution la plus propre pour votre cas d’usage puisque vous interrogez toutes les 2 minutes et une rafale de rattrapage n’a pas de sens pour une file d’attente de support.
@Arthur_Mascot autre point, la configuration de la file d’attente ne se fait pas sur le nœud, mais plutôt dans la configuration du workflow.
vois cette doc Configuring queue mode | n8n Docs
@Arthur_Mascot l’option « Fire on startup catch-up » se trouve dans le nœud Schedule Trigger sous l’onglet Settings (et non l’onglet Parameters). Ouvrez le nœud, basculez vers l’onglet Settings en haut, et vous devriez la voir là. Si vous êtes sur v2.21.7 et ne la voyez pas, ce commutateur a peut-être été ajouté dans une version ultérieure - dans ce cas, l’alternative est de définir WORKFLOWS_QUEUE_STARTUP à false dans vos variables d’environnement, ou simplement de redémarrer n8n pendant une période de faible activité et déclencher manuellement le workflow une fois après le redémarrage.