Требуется задержка запроса MVC3 - PullRequest
2 голосов
/ 05 сентября 2011

У меня есть приложение MVC3.Я должен добавить задержку в одном запросе URI.Я знаю, что самый простой способ сделать это - сон, но приложение в производстве имеет большое количество запросов, и я боюсь, что iis без потоков может ответить на другой запрос.

Я смотрю наасинхронный контроллер / действие для решения.

Лучше ли для пула iis thead выполнить thread.sleep внутри метода "actionSync"?

Как я могу решить эту задержку?Может быть, асинхронное действие, которое вызывает новый веб-сервис, который выполняет thread.sleep внутри?

    AsyncManager.OutstandingOperations.Increment();
    DelayService delayService = new DelayService();
    delayService.GetDelayCompleted += (sender, e) =>
    {
        AsyncManager.Parameters["result"] = e.Value;
        AsyncManager.OutstandingOperations.Decrement();
    };
    newsService.GetDelayAsync(seconds);

В этом случае, если я разверну этот веб-сервис в том же IIS, что приложение mvc3 влияет на доступные потоки iisдля приложения MVC3?что если развернуто в другом пуле приложений?

Что может идо?

1 Ответ

0 голосов
/ 20 сентября 2011

Можете ли вы рассмотреть возможность использования новых 4-битных ASP.NET MVC, выпущенных Microsoft?

Если это так, это может быть возможным решением:

public class TestController : AsyncController {
    public async Task<ActionResult> GetData() {
        await Task.Delay(5000);

        return Content("Done");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...