Erreur de connexion perdue lors du traitement de grandes données

J’ai un workflow où j’ai besoin de traiter une grande quantité de données (près de 48 Mo) que je reçois d’un sous-workflow, mais n8n me donne une erreur de connexion perdue dans le workflow principal. Je pense que cela s’écrase et il n’y a aucun moyen de réduire les données car j’ai besoin de traiter toutes les données ultérieurement. Nous avons l’abonnement Enterprise. Pouvez-vous m’indiquer ce qui d’autre peut être fait

On dirait que vous avez atteint la limite de mémoire, @mylearnings_abu
Cela pourrait vous aider

Bienvenue @mylearnings_abu dans notre communauté ! Je suis Jay et je suis un créateur n8n vérifié.

Le problème fondamental est que n8n charge tous les éléments en mémoire à la fois - 48 Mo de données brutes dépasseront facilement la limite. Au lieu de transmettre l’ensemble complet des données via la sortie du sous-workflow, restructurez-le pour que le sous-workflow retourne uniquement des IDs ou des références, puis traitez les données réelles par lots dans le workflow principal en utilisant un nœud Split in Batches (taille de lot 50-100). Si vous devez récupérer les données par enregistrement, faites-le dans la boucle de traitement par lots avec un nœud HTTP Request ou une base de données. Cela maintient l’utilisation mémoire stable indépendamment de la taille totale de l’ensemble de données.

Bonjour @mylearnings_abu
Cela pourrait t’aider :

En fait, dans mon cas, le sous-workflow retourne les données de la base de données, et toutes ces données sont nécessaires et ensuite transmises pour effectuer une manipulation qui est à nouveau un sous-workflow, donc il n’y a aucun moyen de réduire quoi que ce soit dans les 48 Mo

J’ai aussi une autre question : si nous avons un fichier JSON dans S3 (un tableau d’objets), comment pouvons-nous lire les données par lots ? Est-ce qu’on télécharge le fichier complet et ensuite on effectue le regroupement par lots ?

Salut @mylearnings_abu tu as raison, tu peux simplement télécharger le JSON depuis le nœud AWS S3, et une fois que le fichier est là, tu peux extraire son contenu JSON en utilisant le nœud extract from file, et une fois que tu as le JSON extrait, tu peux soit ajouter une boucle qui est assez facile, soit configurer un nœud code si tu veux que certaines opérations spécifiques soient effectuées sur les données. Un problème que je peux voir tout de suite est que le fichier que tu obtiendras serait très volumineux, car n8n ne supporte actuellement pas la lecture partielle en continu. Sois donc prudent avec l’utilisation de la mémoire.

Mieux vaut repenser votre flux de travail pour fonctionner par lot (récupérer certaines données, les traiter, les réécrire/modifier), plutôt que de récupérer toutes les données puis les traiter