ASP.Net MVC 4 Мне нужно отложить выполнение

У меня есть приложение ASP.Net MVC 4, которое периодически вызывает внешний API для информации (ресурса). Этот ресурс имеет ограничение скорости для учетной записи (это означает, что другие приложения используют тот же пул и могут превысить ограничение). Когда этот предел достигнут, он отправит обратно HTTP-код состояния 429 с заголовком «Retry-After» в секундах (скажем, 25 секунд).

Если мое приложение получит этот ответ, мне потребуется отложить выполнение на 25 секунд и повторить попытку. Прежде всего, позвольте мне сказать, что метод, под которым работает этот код, является ASP.Net 4.5 Async. Для этого я подумал об использовании System.Threading.Thread.Sleep(25000). Теперь мне действительно не нравится это использовать, есть ли лучший способ сделать это?

Я должен сказать, что прошу прощения за этот открытый конец вопрос, но я не смог найти что-нибудь о правильном способе отсрочки выполнения (сохраняя асинхронность и следя за тем, чтобы у нас не заканчивались потоки)

Обновление: следующий код будет лучше для задержки?

  await Task.Run(() => Thread.Sleep(10000))
8
задан i3arnon 15 February 2014 в 03:41
поделиться