Я спросил этот вопрос около 5 лет назад о том, как "разгружать" дорогие операции, когда пользователям не нужно ждать (например, auditng и т.д.), поэтому они быстрее получают ответ на лицевой стороне.
Теперь у меня есть связанный, но другой вопрос. На моем asp.net-mvc я создал несколько отчетов, на которых вы можете генерировать отчеты excel (i am using EPPlus) и отчеты PowerPoint (Я использую aspose.slides). Вот пример действия контроллера:
public ActionResult GenerateExcelReport(FilterParams args)
{
byte[] results = GenerateLargeExcelReportThatTake30Seconds(args);
return File(results, @"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", "MyReport.xlsx");
}
Функциональность отлично работает, но я пытаюсь выяснить, влияют ли эти дорогостоящие операции (некоторые отчеты могут занять до 30 секунд) влияют на других пользователей. В предыдущем вопросе у меня была дорогостоящая операция, которую пользователь DIDN "T должен ждать, но в этом случае ему придется ждать в качестве своего синхронного действия (нажмите" Создать отчет "и ожидайте, что пользователи получат отчет, когда его законченный )
В этом случае мне все равно, что главный пользователь должен ждать 30 секунд, но я просто хочу убедиться, что я не отрицательно влияю на других пользователей из-за этой дорогостоящей операции, создания файлов и т.д.
Есть ли какая-либо передовая практика в asp.net-mvc для этого случая использования?