Tengo un sitio web asp.net (mvc). Como parte de las funciones que tendrá que soportar algunas operaciones de larga ejecución, por ejemplo:Operaciones de larga ejecución (hilos) en un entorno web (asp.net)
inicia a partir de usuario: El usuario puede cargar (XML) presentar al servidor. En el servidor necesito extraer el archivo, hacer algo de manipulación (insertar en el db), etc. Esto puede llevar de un minuto a diez minutos (o incluso más, depende del tamaño del archivo). Por supuesto, no quiero bloquear la solicitud cuando se está ejecutando la importación, pero quiero redirigir al usuario a alguna página de progreso donde tendrá la oportunidad de ver el estado, errores o incluso cancelar la importación.
Esta operación no se usará con frecuencia, pero puede suceder que dos usuarios al mismo tiempo intenten importar los datos. Sería bueno ejecutar las importaciones en paralelo. Al principio estaba pensando en crear un nuevo hilo en el iis (acción del controlador) y ejecutar la importación en un nuevo hilo. Pero no estoy seguro si esta es una buena idea (para crear hilos de trabajo en un servidor web). ¿Debo usar servicios de Windows o cualquier otro enfoque?
Iniciado desde el sistema: - Tendré que actualizar periódicamente el índice de lucene con los datos nuevos. - Tendré que enviar correos masivos (en el futuro).
¿Debería implementar esto como un trabajo en el sitio y ejecutar el trabajo a través de Quartz.net o debería también crear un servicio de Windows o algo así?
¿Cuáles son las mejores prácticas cuando se trata de ejecutar "trabajos" del sitio?
Gracias!
Considere algunas de estas respuestas en una pregunta relacionada http://stackoverflow.com/a/41734936/56145 –