Sto sviluppando un'applicazione .NET 4 che richiede l'esecuzione di un thread di lavoro di backend. Questo thread è costituito in gran parte del seguente codice:Processo in background con esecuzione prolungata in ASP.NET - Application_Start o processo separato?
while (true) {
//Check stuff in database
//Do stuff
//write to database/filesystem
Thread.sleep(60000)
}
L'ASP.NET applicazione è solo un frontend per il database.
La mia domanda è intorno a dove sarebbe il posto migliore per mettere questo ciclo di lavoro. Sembra che le mie due scelte immediate siano (1) per estrarlo dal metodo Application_Start
e lasciarlo funzionare, o (2) raggrupparlo in un processo separato (servizio Windows?)
(1) ovviamente è necessario un po 'di logica nel codice ASP.NET per verificare che sia ancora in esecuzione, poiché IIS potrebbe ucciderlo. È anche abbastanza chiaro che l'intera logica dell'applicazione si trova in un unico pacchetto facilmente distribuibile. (2) è molto più segregato, ma si sente molto più confuso.
Qual è l'approccio migliore?
possibile duplicato di [ASP.NET e thread in background di lunga esecuzione: come si confondono?] (Http://stackoverflow.com/questions/323693/asp-net-and-long-running-background-threads-how -do-they-mix) – jrummell