Я создал блестящий новый сайт ASP.Net MVC, и я выгрузил функцию "сохранить как" в вспомогательную программу, которая может выполняться в фоновом режиме на сервере, чтобы веб-сайт не нуждался в возьмите всю эту нагрузку.
Я создал его так, чтобы он легко запускался из командной строки, и сейчас я его запускаю из планировщика окон. Проблема заключается в том, что она имеет степень детализации 1 минута, а это означает, что некоторые неудачные пользователи сайта нажмут на ссылку и получат 59s wait + время для фактического обработки отчета.
Я также немного беспокоюсь о стартовой стоимости моей программы. Я предполагаю, что будет дешевле поддерживать постоянную работу программы. Я беспокоюсь о том, что программа умирает и не обновляется. С параметром планировщика окон, по крайней мере, мне не нужно беспокоиться о том, что моя программа сильно рушится.
Как вы с этим справились?
Я бы создал службу Windows и выполнял этот запуск вместо exe через планировщик окон. Затем вы можете настроить его на автоматический запуск. Тогда вы можете просто иметь таймер в службе для опроса для работы каждые х секунд.
Другая альтернатива - использовать что-то вроде MSMQ. Ваш внешний интерфейс просто вставлял сообщение в очередь для представления работы, а затем должен был обслуживать службу .NET в очереди (вы можете заставить ее обрабатывать сообщения сразу же, как они появляются в очереди, или самостоятельно проверять очередь вручную х секунд).
В любом случае, я думаю, что Windows Service - это путь.