Вызов метода внутри 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#»