дубликата
Это близкий дубликат Dealing with a longer running process in WCF. Пожалуйста, подумайте о том, чтобы отправить ответ на этот вопрос вместо этого.Длительный процесс нити под ASP.NET + WCF
Оригинал Вопрос
Я уверен, реализации бизнес-слой приложения, которое необходимо запустить несколько фоновых процессов по расписанию. Бизнес-уровень состоит из нескольких служб WCF, работающих под одним и тем же веб-приложением.
Идея определяет набор «задач», которые должны выполняться в разное время (например, каждые 5 минут, каждый день в 23:00 и т. Д.). Это было бы непросто реализовать в качестве службы Windows, но проблема в том, что задачам нужен доступ к кэшам данных, которые живут в сервисах, поэтому этот «планировщик» должен запускаться в контексте IIS для доступа к этим данным.
В настоящее время я использую пользовательскую службу ServiceHostFactory в одной из служб WCF, которая порождает дочерний поток и возвращает. Ребенок-поток спит и просыпается каждые X минут, чтобы увидеть, есть ли запланированные задачи и выполняет их. Но я беспокоюсь о том, что IIS случайно убивает мой поток, когда он перерабатывает пул приложений или после некоторого неактивного времени (например, никаких действий ни в одной из служб WCF, которые прослушивают запросы с уровня представления). Поток должен работать бесперебойно, независимо от активности в сервисах. Это действительно возможно?
Я нашел an article by someone doing the same thing, но его решение, похоже, регулярно пингорует сервер из дочерней нити. Надеемся, что есть лучшее решение.
Это очень близкий дубликат http://stackoverflow.com/questions/1142698/dealing-with-a-longer-running-process-in-wcf. Пожалуйста, взгляните на него и посмотрите, согласны ли вы со мной. –