Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

149
Vistas
Cómo ejecutar la función en diferentes subprocesos con node.js

Tengo una API REST codificada con Node.js y hay una ruta que aplica los derechos NTFS a las carpetas. La solicitud puede tardar 1 segundo pero también puede durar varios minutos (depende del tamaño de la carpeta).

En resumen, si los derechos tardan menos de 5 segundos en aplicarse, quiero devolver el código de estado 200.

Si los derechos no han terminado de aplicarse, me gustaría devolver el código de estado 202.

Para eso uso Promise.race :

 return Promise.race([applyRights(), sleep(5)] .then(result => { statusCode = 200; if (result === undefined) { statusCode = 202; } });

Mi problema es que la función applyRights realiza operaciones bastante complejas. Incluyendo escrituras en el sistema de archivos de Windows y aplicando derechos NTFS con una biblioteca C++.

Parece que la función de C++ para aplicar derechos NTFS está bloqueando el bucle de eventos . Eso significa que mi función de sleep solo se ejecuta después de applyRights .

¿Hay alguna manera fácil de ejecutar la función C++ en otro subproceso o algo así para permitir que el trabajo continúe en segundo plano sin bloquear el ciclo de eventos?

¿O necesito actualizar la biblioteca de C++? (lo que me gustaría evitar hacer)

about 4 years ago · Juan Pablo Isaza
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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda