He visto algo como esto muchas veces, pero nunca veo una respuesta clara.
Dado un servidor express con un bloque como este:
var express = require('express'); var router = express.Router(); app.use(async function(req, res, next){ console.log("REQUEST DETECTED"); await new Promise(r => setTimeout(r, 5000)); next(); }); app.use('/', router.get('/', function(req, res, next) { // Serve a basic page });Considere esta línea de tiempo
lo que esperaba seria
¿Express no puede capitalizar el tiempo de espera para procesar otras solicitudes? Y para que quede claro, sucede lo mismo cuando espero un trabajo útil como ejecutar una consulta de base de datos. Si un usuario solicita una consulta pesada, todo el sitio se bloquea para todos los demás usuarios. ¿Hay una solución alternativa aquí?