• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

98
Vistas
Fetch await tarda tanto tiempo después de que el sitio web no se visita durante un cierto período de tiempo

Tengo esta función para obtener datos de otro servidor (básicamente envía un comando para ejecutar un programa de python, que escribe una salida en un archivo de texto en la máquina remota y luego devuelve el contenido del archivo txt)

 const getServerStatus = () => { // returns result of of screen -ls const commandQuery = "python3 /home/user/scripts/getServerStatus.py && cat /home/user/scripts/status.txt"; return fetch('http://10.0.0.253:3005/fetch', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ command: commandQuery }) }) .then(res => { return res.json(); }) .then(data => { return data.status; }) .catch(err => { // it catches when fatch fails (server is off) return 'OFF'; }); };

Y la función se ejecuta cuando el usuario visita la página de inicio.

 app.get('/', checkAuthenticated, async (req, res) => { const status = await getServerStatus() .then(data => { return data; }); res.render('index.ejs', { name: req.user.username, title: 'home', server_status: status }); })

Funciona sin problemas y devuelve datos y la página de inicio se muestra muy rápido, pero el problema es que si no actualizo la página web durante un período de tiempo (tal vez como 2-3 minutos más o menos), tome alrededor de 8-10 segundos para buscar y mostrar la página de inicio nuevamente. Simplemente no puedo entender cuál es el problema. Creo que hay algún problema con mis funciones asíncronas, pero no estoy seguro. ¿O tal vez mi servidor de nodos se pone en modo inactivo cuando no hay conexiones entrantes?

mi punto final /fetch

 app.post('/fetch', (req, res) => { exec(req.body.command, function (error, stdout, stderr) { res.send(JSON.stringify({status :stdout.replace(/\s/g, '')})); console.log('[+] SERVER STATUS SENT'); if (error !== null) { console.log('exec error: ' + error); } }); });
about 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Resultó que es un problema de hardware? de mi raspberry pi 4. Si ejecuto el proyecto de nodo en una raspberry pi diferente, no hace eso y funciona perfectamente sin problemas.

about 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda