Как обрабатывать запросы веб-службы WCF в очереди - PullRequest
0 голосов
/ 01 марта 2011

У меня есть требование ставить запросы веб-служб в очередь, а затем обрабатывать каждый запрос на основе приоритета и времени запроса. А затем отправьте ответ обратно.

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

2 Создать две очереди (высокоприоритетные запросы и низкоприоритетные запросы)

3 Создайте метод обработки для обработки каждого запроса по одному (сначала удалите очереди с высоким приоритетом, если он существует), а затем сохраните ответ

4 Создать словарь для хранения ответа на соответствующий запрос. 5 создать метод веб-сервиса для получения ответа

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

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

Как я могу выполнить шаг 3, используя веб-сервис WCF? Я использую среду .NET 4.0. Я действительно ценю любые идеи или предложения.

Спасибо

Ответы [ 2 ]

1 голос
/ 01 марта 2011

Я бы создал свой сервисный контракт, чтобы было ясно, что операции будут поставлены в очередь.Что-то вроде:

[OperationContract]
string EnqueueRequest(int priority, RequestDetails details);

[OperationContract]
bool IsRequestComplete(string requestId);

Я бы попросил EnqueueRequest поместить каждый запрос в очередь MSMQ.У меня была бы служба Windows, обрабатывающая запросы в очереди.Эта служба будет единственным процессом, который имеет доступ к устройству SDLC.

0 голосов
/ 01 марта 2011

Вы закодировали сервис в самолете jane, мясо и картофель и профилировали, чтобы увидеть, нужно ли ставить запросы в очередь?В очереди стоят накладные расходы.Это хорошая идея, чтобы сделать некоторые измерения и посмотреть, достаточно ли просто обслуживания запросов.

Другой способ приблизиться к этому - использовать Microsoft Message Queue .Вот даже некоторая тесная интеграция между очередями сообщений и WCF .Смысл в том, что если вам действительно нужна очередь, почему бы не использовать то, что уже создано и протестировано.

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