Estoy desarrollando una aplicación .NET 4 que requiere la ejecución de un subproceso de trabajo de back-end. Este hilo está compuesta principalmente por el siguiente código:Proceso de fondo de larga duración en ASP.NET - ¿Proceso de aplicación o separado?
while (true) {
//Check stuff in database
//Do stuff
//write to database/filesystem
Thread.sleep(60000)
}
aplicación de ASP.NET es sólo un frontend para la base de datos.
Mi pregunta es en torno a dónde sería el mejor lugar para poner este ciclo de trabajo. Parece que mis dos opciones inmediatas serían (1) derivarlo del método Application_Start
, y simplemente dejarlo funcionar, o (2) agruparlo en un proceso separado (¿servicio de Windows?)
(1) obviamente Necesito un poco de lógica en el código ASP.NET para verificar que aún se esté ejecutando, ya que IIS podría matarlo. También es bastante claro que toda la lógica de la aplicación está en un paquete fácil de implementar. (2) es mucho más segregado, pero se siente mucho más desordenado.
¿Cuál es el mejor enfoque?
posible duplicado de funcionamiento [hebras de fondo de ASP.NET y largos - ¿cómo se mezclan?] (Http://stackoverflow.com/questions/323693/asp-net-and-long-running-background-threads-how -do-they-mix) – jrummell