Многопоточность или параллельное выполнение вызовов API в ASP.NET MVC C#C#

Место общения программистов C#
Ответить
Anonymous
 Многопоточность или параллельное выполнение вызовов API в ASP.NET MVC C#

Сообщение Anonymous »

В настоящее время я работаю над приложением ASP.NET MVC, которое взаимодействует с API-интерфейсами более 10 поставщиков для сбора данных. Наш текущий подход предполагает ожидание завершения всех вызовов API с использованием Task.WaitAll, но это приводит к ухудшению взаимодействия с пользователем из-за тайм-аутов соединения. Как мы можем повысить производительность нашего приложения ASP.NET MVC, чтобы уменьшить время ожидания и улучшить взаимодействие с пользователем?
Я попытался оптимизировать свое приложение ASP.NET MVC с помощью Task .WhenAny среди других подходов к асинхронной обработке нескольких вызовов API. Несмотря на эти усилия, я сталкиваюсь с постоянными ошибками. В представлении не отображаются значения, и ошибки, похоже, проскальзывают и не обнаруживаются. Кроме того, контроллер передает эти ошибки в представление. Как я могу решить эти проблемы и обеспечить более плавную работу?
Пожалуйста, дайте мне знать, если есть какой-либо способ улучшить код.
Пример кода ниже:
for (int i = 0; i < sources.Count(); i++)
{
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}

if (supplier != null)
{
Task myTask = Task.Factory.StartNew(() =>
{
supplier.Search(copyRequest, flightDetails, newpccMatrixList, client, copiednearbyairports);
});
taskList.Add(myTask);
pccMatrixList.ForEach(a => a.IsAvailable = false);
}
}
Task.WhenAll(taskList);


Подробнее здесь: https://stackoverflow.com/questions/784 ... vc-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»