Muito bom o vídeo! Clusterizar em child processes foi o primeiro passo que dei na época que comecei me especializar em NodeJS e ainda vejo poucas pessoas fazendo uso desse recurso para solucionar problemas que são facilmente resolvidos por side jobs. Uma coisa que eu faria para ter um pouco mais de controle na geração da URL seria utilizar as entidades URL e URLSearchParams. Dessa forma você conseguiria eliminar o método createQueryStringFromObject (já que faz a mesma coisa que o URLSearchParams) e utilizaria o builder do objeto URL para garantir uma formação de url nos formatos do protocolo http Algo como: const url = new URL(BASE_URL); url.search = new URLSearchParams(message); url.toString();
Puts! Tava fazendo um scraper com puppeteer e tava tendo esse problema de concorrência. Tô doido pra testar isso no meu projeto hahaha volto aqui pra dizer se funcionou.
Cara, muito obrigado, sou da comunidade opensource e uso o puppeteer na minha lib, estive enfrentando esse problema a um bom tempo e agora posso resolver ele. Muito obrigado!
Muito Bom! Eu antes imaginava que seria uma boa estratégia reutilizar a instância do puppeteer abrindo e fechando abas para cada requisição, mas provavelmente ia me deparar com um limite de abas a serem abertas. Não conhecia o puppeteer cluster. Agora preciso estudar mais sobre clusters
Parabéns Erick, mas seguinte pelo q entendi houve um estouro de processos no cliente. E dps uma limitação desses processos. Gostaria de ver a "escalada" do servidor qdo ele não aguenta o processo massivo.
Dá sim, mas acho que ai pode ser algo um pouco mais complicado. Vix, as limitações, vão para um próximo video hahahah, tem alguma duvida em especifico?
Parabens pelo vídeo, gosto muito do seu conteúdo. Comecei a fazer um curso seu grátis de node js há aproximadamente 1 e estava gostando muito porém o meu notebook estragou e perdi tudo... Agora n sei mais qual era o site kkkkkk
Erick alguma dica pra usar o puppeteer-cluster com páginas dinamicas? No caso estou varrendo um site, que fica atualizando a cada segundo, e estou usando um do while pra varrear ate terminar, mas depois de um tempo me retorna erro Session closed. Most likely the page has been closed
Eai Erick, beleza? Cara, que conteúdo massa! Parabéns pelo trabalho e pela didática excelente ! Poderia dar uma olhada no link do código fonte? Ou ele está quebrado ou você esqueceu de deixar o projeto público
Muito bom o conteúdo, é notável o quão mais rápido fica usando child_process, mas fiquei com uma dúvida, não seria mais performático criar novas pages, ao invés de abrir vários navegadores ?
Excelente vídeo Erick! No caso desse mesmo exemplo em aplicações serverless (Function/Lambda) não seria necessário o cluster tendo em vista que seriam criadas novas instâncias pela própria nuvem, correto? Ou daria pra otimizar ainda mais utilizando essa abordagem de cluster? PS: o link do código fonte está Not Found: bit.ly/business-card-generator-yt :(
Eu vou ser sincero, achei pouco instrutivo e informativo a nova feature explicada. O que foi mostrado a documentação sana. Mas faltou o diferencial, que é seu conhecimento sobre o que ele fez nos bastidores e seu comportamento no SO. É um fork? Esse fork, que é nativo do SO, pode ser personalizado? Desculpe a entrada de perguntas, mas é a área que domino. Faço isso em Perl/C fazem muitos anos. NGinx é um exemplo, Apache é um exemplo de uso disso. Atualmente desenvolvo em aplicativos com Go, que é extremamente superior ao Node.js, com as mesmas facilitações do Express, mas com um poder, bom, nem quero comparar para não deixar o Node.js chorando. Razão da qual grandes empresas de operações com meios de pagamento fora estão migrando. Bom, é isso, não curti, sou sincero. Para mim, mesma coisa que ler a documentação. Esperava o conhecimento aplicado sobre o porque, o comportamento visto no SO, os procs da vida e etc. Então não, o que o vídeo faz não ensina e a pessoa usaria como um robo sem menor entendimento. E sim, sem o menor entendimento, acredite, não ESCALA, pois há pormenores a serem analisados. E sim, cria insegurança dependendo da aplicabilidade.
Boa! Achei bem legais os pontos. Eu acho que você não entendeu o objetivo do vídeo. Não era mostrar a feature nova ou como o puppeteer funciona. Foi conscientizar pessoas que escalar software não é só criar novas cópias de aplicações. Sobre node não escalar, depende muito do volume que você precisa. Precisa de milhões de conexões simultâneas com poucas instâncias a custo baixo, talvez node.js não seja bacana, mas poucas pessoas precisam escalar software a um volume tão grande de conexões. Entendo que Perl e ate o C possam ajudar muito nisso, mas fazer devs Javascript implementarem uma nova linguagem, pode ser ainda pior que escalar da forma com que eu sugeri aqui
Esse vídeo me animou, consegui escalar direitinho minha solicitação graças aos seus vídeos sobre o assunto, muito obrigado pelo conteúdo!
simplesmente incrivel!
Oopaaaaaa tmj sempre!!
Adorei... Da forma que vc explica e mostra parece tudo fácil... Sei que não é, mas é muito bom assistir seus vídeos abre a mente muito.
Opa Paulo muito obrigado pelo reconhecimento! Realmente eu gasto boas horas preparando esses exemplos ahahha
Senior demais, sem palavras. Mesmo não entendendo muito, faço questão de acompanhar, suas aulas me motivam a aprender mais.
Muito bom o vídeo! Clusterizar em child processes foi o primeiro passo que dei na época que comecei me especializar em NodeJS e ainda vejo poucas pessoas fazendo uso desse recurso para solucionar problemas que são facilmente resolvidos por side jobs.
Uma coisa que eu faria para ter um pouco mais de controle na geração da URL seria utilizar as entidades URL e URLSearchParams.
Dessa forma você conseguiria eliminar o método createQueryStringFromObject (já que faz a mesma coisa que o URLSearchParams) e utilizaria o builder do objeto URL para garantir uma formação de url nos formatos do protocolo http
Algo como:
const url = new URL(BASE_URL);
url.search = new URLSearchParams(message);
url.toString();
ötimas dicas Júlio!! Eu nem lembrei deste módulo haha. Muito obrigado pelo toque \o/
@@ErickWendelAcademy tamo junto! 👊🏻
Puts! Tava fazendo um scraper com puppeteer e tava tendo esse problema de concorrência. Tô doido pra testar isso no meu projeto hahaha volto aqui pra dizer se funcionou.
Show demais.
opaaa fico feliz que curtiu Marco, bora pra cima o/
Cara, muito obrigado, sou da comunidade opensource e uso o puppeteer na minha lib, estive enfrentando esse problema a um bom tempo e agora posso resolver ele. Muito obrigado!
Simples e prático. Fera!
Os conteúdos do Erick são profissa, parabéns
Que conteúdo sensacional!!
Opaaaa, manda pra galera ai!! O que mais curtiu?
Rapaz, incrível. Muito obrigado pelo conteúdo.
Opa Matheus que bom que curtiu!! Tem mais conteúdo chegando por aí!
massa em bixo, conteúdo toper
opaaaa, tentando melhorar um pouquinho a cada video ahha
Fera demais!
Sugestão de conteúdo: ensinar a usar o autocannon nível expert.
Boa! zvou colocar na lista!
Toooppp Erick, valeu dev
opaaaaa tmj! Hugo! Já conhecia esse método?
@@ErickWendelAcademy não conhecia valeuuuu mesmo
Brabos em multiplos processos
ahahahah né! Brabo, brabo, brabo e brabo clusterizado
Sensacional, parabéns de verdade pelo conteúdo.
Opaaa fico feliz que curtiu Allisson \o/
Que vídeo sensacional. Ganhou mais um inscrito!
Mais um vídeo Top Erick. Obrigado por compartilhar esse conhecimento conosco. 🤘
Muito bem explicado!
Opaaaa que bom que curtiu!!
Muito top!
opaaaa fico feliz que curtiu Mateus! Tem bastante conteudo chegando por ai \o/
Muito f@da!!! Top demais!
Obrigado pelo conteúdo.
Ta inspirado hein! Parabéns louco!
Que conteúdo, muito show!
Muito Bom! Eu antes imaginava que seria uma boa estratégia reutilizar a instância do puppeteer abrindo e fechando abas para cada requisição, mas provavelmente ia me deparar com um limite de abas a serem abertas. Não conhecia o puppeteer cluster. Agora preciso estudar mais sobre clusters
Excelente cara, parabens
Hey Erick, Any english version of this video.
Parabéns Erick, mas seguinte pelo q entendi houve um estouro de processos no cliente. E dps uma limitação desses processos. Gostaria de ver a "escalada" do servidor qdo ele não aguenta o processo massivo.
que homi!
opaaaa hahaha bora pra cima o/
Conteúdo incrível!
É possível escalar um fs write?
Uma dúvida, dá para usar esse esquema dos cluster com puppeteer em serverless? Quais as limitações se possível ?
Dá sim, mas acho que ai pode ser algo um pouco mais complicado.
Vix, as limitações, vão para um próximo video hahahah, tem alguma duvida em especifico?
Parabens pelo vídeo, gosto muito do seu conteúdo. Comecei a fazer um curso seu grátis de node js há aproximadamente 1 e estava gostando muito porém o meu notebook estragou e perdi tudo... Agora n sei mais qual era o site kkkkkk
Erick alguma dica pra usar o puppeteer-cluster com páginas dinamicas? No caso estou varrendo um site, que fica atualizando a cada segundo, e estou usando um do while pra varrear ate terminar, mas depois de um tempo me retorna erro Session closed. Most likely the page has been closed
Existe algo parecido com o puppeteer-cluster para o axios?
Eai Erick, beleza? Cara, que conteúdo massa! Parabéns pelo trabalho e pela didática excelente ! Poderia dar uma olhada no link do código fonte? Ou ele está quebrado ou você esqueceu de deixar o projeto público
Muito bom o conteúdo, é notável o quão mais rápido fica usando child_process, mas fiquei com uma dúvida, não seria mais performático criar novas pages, ao invés de abrir vários navegadores ?
O puppeteer não consegue controlar pages de forma paralela
adorei o video mas não entendi nada, rs (sou iniciante no backend)
seria legal mostrar essa técnica de clusterização com banco de dados
Erick, a url do repositório ta retornando 404. Pode corrigi-la ?
Allisson Mateus qual url?
@@ErickWendelAcademy o código fonte bit.ly/business-card-generator-yt
Arrumei! Testa ai agora \o/
Excelente vídeo Erick! No caso desse mesmo exemplo em aplicações serverless (Function/Lambda) não seria necessário o cluster tendo em vista que seriam criadas novas instâncias pela própria nuvem, correto? Ou daria pra otimizar ainda mais utilizando essa abordagem de cluster?
PS: o link do código fonte está Not Found: bit.ly/business-card-generator-yt :(
Da pra dar mais de um like?
Eu vou ser sincero, achei pouco instrutivo e informativo a nova feature explicada. O que foi mostrado a documentação sana. Mas faltou o diferencial, que é seu conhecimento sobre o que ele fez nos bastidores e seu comportamento no SO. É um fork? Esse fork, que é nativo do SO, pode ser personalizado?
Desculpe a entrada de perguntas, mas é a área que domino. Faço isso em Perl/C fazem muitos anos. NGinx é um exemplo, Apache é um exemplo de uso disso. Atualmente desenvolvo em aplicativos com Go, que é extremamente superior ao Node.js, com as mesmas facilitações do Express, mas com um poder, bom, nem quero comparar para não deixar o Node.js chorando. Razão da qual grandes empresas de operações com meios de pagamento fora estão migrando.
Bom, é isso, não curti, sou sincero. Para mim, mesma coisa que ler a documentação. Esperava o conhecimento aplicado sobre o porque, o comportamento visto no SO, os procs da vida e etc. Então não, o que o vídeo faz não ensina e a pessoa usaria como um robo sem menor entendimento. E sim, sem o menor entendimento, acredite, não ESCALA, pois há pormenores a serem analisados. E sim, cria insegurança dependendo da aplicabilidade.
Boa! Achei bem legais os pontos. Eu acho que você não entendeu o objetivo do vídeo. Não era mostrar a feature nova ou como o puppeteer funciona. Foi conscientizar pessoas que escalar software não é só criar novas cópias de aplicações.
Sobre node não escalar, depende muito do volume que você precisa. Precisa de milhões de conexões simultâneas com poucas instâncias a custo baixo, talvez node.js não seja bacana, mas poucas pessoas precisam escalar software a um volume tão grande de conexões. Entendo que Perl e ate o C possam ajudar muito nisso, mas fazer devs Javascript implementarem uma nova linguagem, pode ser ainda pior que escalar da forma com que eu sugeri aqui
Quando o cara pensa que sabe alguma coisa... putz
Hahahah sempre tem algo mais para aprendermos o/