Пользователь закрыл вкладку, а тяжёлый отчёт продолжает выполняться в базе минуту
[HttpGet("report")]
public async Task<IActionResult> Report()
{
var rows = await _db.Orders.Where(...).GroupBy(...).ToListAsync();
return Ok(rows);
}
Пользователи часто уходят со страницы отчёта, не дождавшись, а запросы продолжают нагружать базу. Как это исправить?
- Передавать CancellationToken в ToListAsync
- Вызывать ToList() вместо ToListAsync()
- Запускать запрос через Task.Run
- Уменьшить таймаут HTTP-клиента в браузере
