Quiero agregar algunas utilidades de administrador a una pequeña aplicación web, como "Backup Database". El usuario hará clic en un botón y la respuesta HTTP volverá de inmediato, aunque el proceso potencialmente de larga ejecución se haya iniciado en segundo plano.Comportamiento similar a "engendrar un hilo" en node.js
En Java esto probablemente se implementaría al generar un hilo independiente, en Scala utilizando un Actor. Pero, ¿qué es una expresión apropiada en node.js? (fragmento de código apreciado)
Ahora estoy volviendo a leer los documentos, esto realmente parece una pregunta del nodo 101, pero eso es más o menos donde estoy en esto ... de todos modos, para aclarar este es el escenario básico:
function onRequest(request, response) {
doSomething();
response.writeHead(202, headers);
response.end("doing something");
}
function doSomething(){
// long-running operation
}
Quiero que la respuesta vuelva inmediatamente, dejando doSomething() ejecutándose en segundo plano.
Bien, dado el modelo de nodo de subproceso único que no parece posible sin generar otro ChildProcess de nivel de sistema operativo. Mi malentendido.
En mi código, lo que necesito para la copia de seguridad es principalmente basado en E/S, por lo que el nodo debe manejar eso en una buena manera asíncrona. Lo que creo que haré es cambiar el doSomething a después de la respuesta. Y vea cómo se comporta.
Confío en que ha hojeado la documentación. http://nodejs.org/docs/v0.4.7/api/index.html Creo que depende de la naturaleza de su proceso, pero eche un vistazo a Child Process. – supertopi
Gracias. Parece que mi problema se debió a un profundo malentendido sobre cómo funciona el nodo :) Child Process fue lo que tenía en mente, aunque no es la solución más fácil, consulte la respuesta de Joe a continuación. – danja