Я разрабатываю веб-приложение, которое будет отвечать за загрузку некоторых HTML-документов с разных веб-сайтов.
public ActionResult DownloadHTML (List<string> URLs)
{
foreach (var URL in URLs)
{
var client = new WebClient();
client.DownLoadStringAsync(URL);
var result = DoSomethingElse(URL)
}
return Json(Success = true)
}
На данный момент я протестировал его с 10 пользователями, поэтому у меня до сих пор не было проблем. Но что делать, когда 10 000 человек пытаются выполнить ту же функцию и загрузить HTML-документ с веб-сайта? Я также не хочу создавать проблемы на любом веб-сайте, отправляя миллионы запросов или делая мое приложение ненадежным.
Я думал о создании какой-либо очереди в кэше сервера и выполнении каждого запроса с течением времени, когда количество запросовбольше определенной суммы. Не уверен, возможно ли это или практично, хотя.
Каков наилучший способ предотвратить / справиться с подобным сценарием?
Спасибо за любую помощь