Processo em segundo plano de execução demorada no ASP.NET - Application_Start ou processo separado?
Estou desenvolvendo um aplicativo .NET 4 que requer a execução de um thread de trabalho de back-end. Este segmento consiste principalmente no seguinte código:
while (true) {
//Check stuff in database
//Do stuff
//write to database / filesystem
Thread.sleep(60000)
}
aplicativo ASP.NET é apenas uma interface para o banco de dado
Minha pergunta é em torno de onde seria o melhor lugar para colocar esse loop de trabalho. Parece que minhas duas escolhas imediatas seriam (1) separá-lo doApplication_Start
e deixe-o executar ou (2) agrupe-o em um processo separado (serviço do Windows?)
(1) obviamente precisaria de alguma lógica no código do ASP.NET para verificar se ainda está em execução, pois o IIS pode matá-lo. Também é bastante claro que toda a lógica do aplicativo está em um pacote facilmente implementável. (2) é muito mais segregado, mas parece muito mais confus
Qual é a melhor abordagem?