Я пытаюсь написать лог c моего API для обработки после асин c действия. По сути, я вызову задачу с первым вызовом и отправлю обратно 201 и triggerState обратно в качестве результата, чтобы подтвердить, что задача инициирована.
А теперь, после периода ожидания, когда я выполняю вызов, как проверить, есть ли у задачи было завершено. По праву переменная результата должна иметь статус. Но так как я инициирую обратный вызов, результат всегда инициируется как нулевой.
System.Threading.Tasks.Task resultTask;
[HttpGet]
public async Task<HttpResponseMessage> Get(TriggerMode triggerMode)
{
if (String.IsNullOrEmpty(triggerMode.triggerState))
{
DTTAsync model = new DTTAsync();
resultTask = Task.Run(async () =>
{
await model.RunDTT(triggerMode.UserName, triggerMode.TenantID, triggerMode.Procedure);
});
triggerMode.triggerState = DateTime.UtcNow.ToString();
return GenerateAsyncResponse(HttpStatusCode.Accepted, triggerMode.triggerState, "15");
}
//If there is a triggerState - meaning we have polled before and returned a location header in the if branch above.
else
{
//Do some work to check if a trigger is available
if (DateTime.Parse(triggerMode.triggerState) < DateTime.UtcNow)
{
//If available, check if
//MY LOGIC COMES HERE
return GenerateAsyncResponse(HttpStatusCode.OK, triggerMode.triggerState, "15");
}
else
{
return GenerateAsyncResponse(HttpStatusCode.Accepted, triggerMode.triggerState, "15");
}
}
}