У меня есть приложение MVC, в котором при посещении определенного URL-адреса я хочу начать выполнение некоторого кода инициализации, который занимает около 4 секунд, но также немедленно возвращает им View()
. В настоящее время я делаю это:
public IActionResult Inbound(string uuid)
{
using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, "http://.../call/setup"))
{
requestMessage.Headers.Add("uuid", uuid);
Clients.httpClient.SendAsync(requestMessage);
}
return View();
}
public IActionResult Setup([FromHeader] string uuid)
{
InitialiseStuff(uuid); //This takes several seconds to execute
return StatusCode(200);
}
Это самый оптимальный способ сделать это? Код инициализации не влияет на представление, возвращаемое из «входящего».
Просто чтобы уточнить: Я хочу вернуть представление и затем инициализировать некоторый не связанный код в фоновом режиме. В настоящее время я просто делаю асинхронный запрос GET для отдельного действия, которое затем выполняет код. Я хочу знать, является ли это лучшим решением.