Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

128
Views
tener el navegador titiritero como instancia global abierta en todo momento frente al uso de una nueva instancia del navegador para cada solicitud

tengo algunas direcciones web en mi base de datos, necesito verificar estas direcciones en busca de algo y actualizarlas en la base de datos en consecuencia ... necesito hacer esto una y otra vez

aquí está la versión simplificada de mi código, tengo dos funciones

1 - init -> lee una fila de dirección de db, pasa la dirección a la segunda función para verificar y actualizar el resultado en db para esa dirección

2 - check_address -> verificar esa dirección en el navegador y devolver el resultado

aquí está la versión simplificada de mi código

 async function init() { try { let address = 'select * from addressess order by updated_at asc limit 1'; let result = await check_address(address); await address.update({result : result }); } catch(e){} setTimeout( ()=> init() , 5000 ); } async function check_address( address ) { var browser = await puppeteer.launch(); let result = await 'open a tab , go to the address and cehck'; // close the browser return result ; } init();

Siento que abrir y cerrar el navegador para cada dirección consume mucho tiempo/recursos, así que pensé que tal vez podría tener un navegador global abierto en todo momento y simplemente abrir y cerrar pestañas en el navegador o tal vez incluso usar la misma pestaña... algo como

 let globalBrowser = false ; async function check_address( address ) { if(!globalBrowser) { globalBrowser = await puppeteer.launch(); globalBrowser._process.once('close', () => { globalBrowser = false; }); } let result = await 'open a tab , go to the address and cehck'; return result ; }

pero no estoy seguro de si tener un navegador abierto en todo momento está bien, o este flujo generalmente es una buena idea

tengo una experiencia muy limitada con titiritero, me encantaría recibir información de alguien con más experiencia y conocimiento de la aplicación titiritero de larga duración

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

De hecho, abrir y cerrar el navegador tiene un rendimiento pesado. Si su secuencia de comandos se ejecuta en un servidor, puede abrir el navegador inicialmente y hacer un trabajo cron (@package node-cron ) cada X horas en la función check_adress .

En lugar de cerrar el navegador, simplemente puede cerrar la página actual a través de:

 await page.close();
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!