Подсистема в веб-приложении для периодических задач - PullRequest
3 голосов
/ 14 марта 2012

Если быть точным: у меня есть система веб-форм .NET.Мне нужен способ проверить некоторые значения и выполнять задачи, в зависимости от этих значений в периодической манере.Допустим, каждый месяц я должен проверять, действительны ли кредитные карты моих клиентов.Есть некоторые другие задачи / проверка в короткие сроки.

Каков наилучший подход к предмету.Я думал о службе Windows, но я читал о WCF.Посоветуйте, пожалуйста, какой современный и хороший способ решить эту задачу.Я думаю о .NET 4.0.

Ответы [ 4 ]

4 голосов
/ 14 марта 2012

WCF - это просто интерфейс, который может работать в Windows Service или IIS.Этот интерфейс WCF используется для запуска некоторых синхронных или асинхронных действий.

Ваш случай звучит так, как будто вы хотите, чтобы служба Windows по таймеру выполняла проверку данных, хранящихся в базе данных или файле.

ЕслиЕсли вы хотите запустить процесс по требованию, то может быть полезно добавить конечную точку WCF. Если подход с использованием таймера достаточно хорош, вам не нужно беспокоиться о WCF.

Ссылки для размещения WCF в Windows Process

3 голосов
/ 14 марта 2012

Как вы и предполагали, служба Windows - хороший подход к этой проблеме.

Аналогично, вы можете написать консольное приложение и запустить его через запланированное задание в Windows.

Это зависит от того, как работает ваш бэкэнд и с чем вы больше всего знакомы.

Написание консольного приложения очень просто, но это, возможно, не лучший подход, так как вам нужно убедиться, что пользовательвойдите в систему, чтобы можно было запустить запланированное задание.

Служба немного сложнее в реализации, но имеет преимущества, связанные с правильной интеграцией в ОС.

В MSDN есть хорошее руководство понаписание сервиса на C #, и вам не обязательно нужен WCF: http://msdn.microsoft.com/en-us/library/aa984464(v=vs.71).aspx

1 голос
/ 14 марта 2012

Если у вас ограниченный контроль над сервером (т. Е. Разрешены только обычные HTTP-страницы):

Вы также можете использовать веб-страницу для запуска задачи - таким образом, вам не нужны никакие дополнительные компоненты, установленные на сервере,Чем другие машины настраивают периодические запросы к страницам, которые запускают задачи.Убедитесь, что задачи перезапускаются и достаточно коротки, чтобы вы могли выполнять каждое из них при обычном запросе страницыСтраница может ответить данными «следующая задача для запуска», поэтому ваша клиентская страница может продолжать проверять сервер до завершения всей операции.

Примечание. Попытка запустить долго выполняющиеся задачи внутри процесса веб-службы ненадежна из-за пула приложений /перезапись домена приложения.

1 голос
/ 14 марта 2012

Вы можете использовать что-то вроде quartz.net. Смотрите ссылку - http://quartznet.sourceforge.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...