2009-06-21 3 views
3

В моем веб-сервисе используется другой API для получения данных. Я кэширую данные, очищаю их и возвращаю, когда пользователь делает запрос. На данный момент у меня много запросов, и поскольку я могу получить доступ только к API данных 2 раза в секунду, я получаю ошибки, что означает, что некоторые пользователи не получают данные и другие.C# Request Queue

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

Как бы это сделать в ASP.NET 3.5?

ответ

5

Вкратце, я предлагаю вам создать службу Windows для обработки очереди MSMQ. Ваш существующий веб-сервис отправит запросы в эту очередь.

Тем не менее, ваш сервис должен стать асинхронным веб-сервисом. Таким образом, пока вы ожидаете ответа, ваша служба не будет блокировать поток запросов.

Кстати, вы используете веб-службы ASMX или службы WCF? Это определит, как сделать службу асинхронной.

+0

Чтобы быть честным, я просто использую страницу просмотра MVC, которая возвращает JSON на основе сведений в URL-адресе. Контроллер mvc получает переменные и отправляет список элементов на страницу просмотра для отображения. Действительно ли необходимо иметь автономный веб-сервис для обработки запросов? Если да, то какой тип обслуживания вы считаете лучшим. –

+0

Разве вы не сказали, что вам нужно заказывать запросы? –

+0

Да, мне нужно что-то стоять в очереди и обращаться с ними. –