Я занимаюсь разработкой приложения .NET 4, которое требует запуска рабочего потока бэкэнда. Этот поток состоит в основном из следующего кода:
while (true) {
//Check stuff in database
//Do stuff
//write to database / filesystem
Thread.sleep(60000)
}
Приложение ASP.NET - это всего лишь интерфейс для базы данных.
Мой вопрос о том, где лучше всего разместить этот рабочий цикл. Похоже, что я выбрал бы два варианта: (1) выделить его из метода Application_Start
и просто запустить, или (2) связать его в отдельный процесс (служба Windows?)
(1), очевидно, потребуется некоторая логика в коде ASP.NET, чтобы проверить, что он все еще работает, поскольку IIS может его убить. Это также довольно аккуратно, поскольку вся логика приложения находится в одном легко развертываемом пакете.
(2) гораздо более сегрегированный, но чувствует себя намного более грязным.
Какой лучший подход?