У меня есть сценарий, в котором мне нужно вернуть значение вызывающей службе перед фактическим выполнением. Я использовал HostingEnvironment.QueueBackgroundWorkItem(), чтобы сохранить выполнение в фоновом режиме, поскольку при выполнении необходимо выполнить несколько задач, таких как выборка данных из базы данных и т. д., но вызывающая служба требует, чтобы значение было возвращено в течение 5 секунд, чтобы она не считала это промахом. Мой код выглядит так:
Код: Выделить всё
[HttpGet]
[AXAuthenticationFilter]
[Route("callback", Name = "SearchCallBack")]
public IHttpActionResult CallBack()
{
HostingEnvironment.QueueBackgroundWorkItem(ct => ProcessDetails(myXml, Context, CAPIBaseAddress, NAPIBaseAddress, apiKey, storage, OUrl, APIUserId));
return Ok();
}
Но я заметил, что методы ProcessDetails() иногда не могут завершить выполнение и пропускают некоторые задачи, которые они выполняют в конце. Я просмотрел документацию HostingEnvironment.QueueBackgroundWorkItem() и обнаружил, что она может остановить выполнение, если приложение находится в состоянии ожидания и т. д. Мой вопрос заключается в том, как я могу добиться этого сценария, когда выполнение завершается, даже если значение возвращается в вызывающую службу.