Mon nœud de code expire constamment. Mais il fonctionnait bien avant. Je ne pense pas que c’est du code très complexe.
Voici le code :
const rawDate = $input.item.json.Date;
const rawTime = $input.item.json.Current_Time;
const parts = rawDate.split(‘-’);
const day = parts[0].padStart(2, ‘0’);
const monthMap = { Jan:‘01’, Feb:‘02’, Mar:‘03’, Apr:‘04’, May:‘05’, Jun:‘06’, Jul:‘07’, Aug:‘08’, Sep:‘09’, Oct:‘10’, Nov:‘11’, Dec:‘12’ };
const mm = monthMap[parts[1]];
const yyyy = 20${parts[2]};
const timeWithMs = rawTime.split(‘T’)[1];
const timePart = timeWithMs.split(‘.’)[0];
const offsetPart = timeWithMs.includes(‘+’) ? +${timeWithMs.split('+')[1]} : -${timeWithMs.split('-')[1]};
return {
…$input.item.json,
Formatted_Date: ${yyyy}-${mm}-${day}T${timePart}${offsetPart}
};
1 « J'aime »
const { Date: d, Current_Time: t } = $input.item.json;
const [day, mon, yr] = d.split(‘-’);
const month = {
Jan:‘01’, Feb:‘02’, Mar:‘03’, Apr:‘04’,
May:‘05’, Jun:‘06’, Jul:‘07’, Aug:‘08’,
Sep:‘09’, Oct:‘10’, Nov:‘11’, Dec:‘12’
}[mon];
const time = t.split(‘T’)[1];
const [hms, offset] = time.split(‘.’);
return [
{
json: {
…$input.item.json,
Formatted_Date: 20${yr}-${month}-${day.padStart(2,'0')}T${hms}.${offset || ''}
}
}
];
Bienvenue @Elan_Savan!
Ce code est trop simple pour atteindre la limite de 60 secondes par lui-même - l’analyse de chaîne de caractères de date comme celle-ci s’exécute en moins de 1 ms. La cause la plus probable est le nombre d’éléments qui arrive au nœud : les nœuds Code s’exécutent une fois par élément par défaut, donc si vos données en amont ont augmenté (par exemple 200+ lignes d’une feuille de calcul), le temps d’exécution total s’accumule et peut déclencher le délai d’expiration. Cliquez sur le nœud dans l’éditeur et vérifiez combien d’éléments se trouvent à son entrée.
Si le nombre d’éléments semble normal, il se peut également qu’il s’agisse d’un problème temporaire de capacité du gestionnaire de tâches Cloud - essayez de désactiver puis réactiver le workflow, puis réexécutez en mode test pour voir s’il se reproduit de manière cohérente.
1 « J'aime »
Merci pour cette analyse, @nguyenthieutoan.
Tu as raison de dire que le code lui-même est léger et ne devrait normalement pas atteindre la limite d’exécution de 60 secondes. La première chose que je vérifierais, c’est le nombre d’éléments entrant dans le nœud Code, puisque n8n exécute le code pour chaque élément entrant par défaut. Si la source en amont retourne des centaines d’enregistrements, le temps d’exécution cumulé pourrait devenir significatif.
Je te recommande aussi de vérifier :
• Si le workflow s’exécute en mode « Run Once for Each Item » ou « Run Once for All Items ».
• Les journaux d’exécution pour identifier quel nœud consomme réellement la majorité du temps d’exécution.
• Les nœuds en amont comme les requêtes HTTP, les requêtes de base de données ou les opérations sur feuilles de calcul qui pourraient introduire des délais avant l’exécution du nœud Code.
• L’utilisation de la mémoire et l’historique d’exécution du workflow si tu utilises n8n Cloud, car une congestion temporaire du gestionnaire de tâches peut occasionnellement affecter les temps d’exécution.
Pour optimiser, la transformation de date peut aussi être simplifiée en utilisant les fonctions natives de gestion de Date en JavaScript, ce qui réduit la quantité d’analyse de chaîne de caractères requise.