Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

203
Visualizações
Titiritero obtiene el error 503 cuando se implementa pero no localmente

Estoy usando titiritero en Node para tomar una captura de pantalla de un dominio, pero tengo algunos problemas inconsistentes.

Las cosas funcionan bien cuando ejecuto el código localmente, pero cuando lo tengo implementado en Heroku obtendré un 503 (servicio no disponible) 8/10 veces cuando pruebo las cosas. No estoy seguro de por qué funcionará esas 2/10 veces.

Tengo los complementos en Heroku y he intentado restablecerlos para asegurarme de que se carguen en el orden correcto, como han mencionado algunas soluciones. También intenté cambiar la configuración dentro de la función titiritero, como las que se muestran aquí y tener 'sin cabeza: verdadero'

Estoy enviando la imagen como una cadena base64 para luego mostrarla en la interfaz.

Aquí está mi código de función, ruta api y solicitud de interfaz:

Código de función:

 async function captureScreenshot(domain) { try { const browser = await puppeteer.launch({ args: [ "--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage", ], }); const page = await browser.newPage(); await page.setViewport({ width: 1440, height: 1080 }); await page.goto(`http://${domain}`); let domainScreenshot = await page.screenshot({ type: "jpeg", quality: 75, }); domainScreenshot = Buffer.from(domainScreenshot).toString("base64"); await browser.close(); return domainScreenshot; } catch (err) { console.log(`❌ Error: ${err.message}`); } }

Ruta API:

 router.get("/screenshot", async (req, res, next) => { try { const { domain } = req.query; const buffer = await captureScreenshot(domain); res.setHeader("Content-Type", "image/png"); res.send(buffer); } catch (error) { next(error); } });

Solicitud de reducción:

 export const fetchScreenshot = (domain) => async (dispatch) => { try { const params = { domain, }; const { data: imgUrl } = await axios.get("/api/domainData/screenshot", { params, }); if (imgUrl) { dispatch(setImgURL(domain, imgUrl)); } } catch (error) { console.error(error); } };

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Encontré una solución:

Agregué esta línea a la matriz de argumentos del titiritero:

 "--single-process"

Todavía tiene errores, pero es más como 1/10 veces, lo que es mucho más aceptable.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda