Вызов метода внутри HostingEnvironment.QueueBackgroundWorkItem() иногда не завершает выполнениеC#

Место общения программистов C#
Anonymous
Вызов метода внутри HostingEnvironment.QueueBackgroundWorkItem() иногда не завершает выполнение

Сообщение Anonymous »

У меня есть сценарий, в котором мне нужно вернуть значение вызывающей службе перед фактическим выполнением. Я использовал 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() и обнаружил, что она может остановить выполнение, если приложение находится в состоянии ожидания и т. д. Мой вопрос заключается в том, как я могу добиться этого сценария, когда выполнение завершается, даже если значение возвращается в вызывающую службу.

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