Enfrentando erro de conexão perdida ao processar dados grandes

Tenho este fluxo de trabalho onde preciso lidar com grandes volumes de dados (aproximadamente 48MB) que recebo de um subfluxo, mas o n8n gera um erro de conexão perdida no fluxo de trabalho principal. Acho que está travando e não há como eu reduzir os dados porque preciso que todos sejam processados posteriormente. Estamos no Plano Enterprise. Você poderia me orientar sobre o que mais pode ser feito?

Parece que você atingiu o limite de memória, @mylearnings_abu
Isso pode ajudar

Bem-vindo @mylearnings_abu à nossa comunidade! Sou Jay e sou um criador verificado do n8n.

O problema central é que o n8n carrega todos os itens na memória de uma vez - 48MB de dados brutos facilmente ultrapassarão o limite. Em vez de passar o conjunto de dados completo através da saída do sub-workflow, reestruture para que o sub-workflow retorne apenas IDs ou referências, depois processe os dados reais em lotes no workflow principal usando um nó Split in Batches (tamanho de lote 50-100). Se precisar buscar os dados por registro, faça isso dentro do loop de lote com um nó HTTP Request ou database. Isso mantém o uso de memória plano, independentemente do tamanho total do conjunto de dados.

Oi @mylearnings_abu
Isso pode ajudar:

Na verdade, no meu caso o subfluxo está retornando dados do banco de dados e todos esses dados são necessários e depois passados para fazer alguma manipulação que é novamente um subfluxo, então não há forma alguma de eu reduzir nada em 48MB

Além disso, tenho mais uma dúvida: se tivermos um arquivo JSON em S3 (array de objetos), como podemos ler dados em lotes? É como fazer um GET do arquivo completo e depois realizar o batch?

Oi @mylearnings_abu você está correto, você pode apenas baixar o JSON do nó AWS S3, e uma vez que o arquivo esteja lá, você pode extrair seu conteúdo JSON usando o nó extract from file, e uma vez que você tenha o JSON extraído, você pode adicionar um loop que é bem fácil ou configurar um nó de código se quiser algumas operações específicas a serem executadas nos dados. Um problema que consigo ver de imediato é que o arquivo que você obteria seria muito grande, pois o n8n atualmente não suporta leitura parcial com streaming. Então apenas tenha cuidado com o uso de memória.

É melhor redesenhar seu fluxo de trabalho para funcionar em lotes (buscar alguns dados, processá-los, reescrever/modificar), em vez de buscar todos os dados e depois processá-los