.NET MVC, Задача никогда не переходит в статус Готово - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь реализовать длительную обработку операций на сервере без push-уведомлений.Все методы моего проекта - Async.Все методы из веб-проекта ожидают с ConfigureAwait (false). В моем вебе есть ссылка на библиотеку, которая управляет долго выполняющейся операцией.По моему первоначальному запросу у меня есть возможность забыть о том, что, как мне кажется, может продолжаться дольше:

// my fire and forget - the task is not awaited
longRunningOperation.RunAsync();

// add my delay 
var result = await Task.WhenAny(longRunningOperation.Task, Task.Delay(LongRunningConfiguration.Instance.InitialRequestReleaseTime)).ConfigureAwait(false);

// if the task finishes the return on time, otherwise create long running handler
if (result == longRunningOperation.Task)
{
    // it is OK
}
else
{
    Task task = Task.Run(async () =>
    {
        await longRunningOperation.Task;
    });

    monitorTask = new ActiveMonitorTask(longRunningOperation, task)
    {
        Id = Guid.NewGuid()
    };

    _monitorStateSession.Add(monitorTask);
}

На данный момент у меня реализована только одна из моих операций для поддержки долгосрочной работы.Мое время задачи для этой операции переходит в состояние «Готово».Но время от времени они зависают в WaitForActivation

Есть какие-нибудь предложения, как отследить проблему или выяснить, что может ее вызвать?

С уважением, Борис

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...