C# Web Api Asyn c Call - PullRequest
       26

C# Web Api Asyn c Call

0 голосов
/ 09 апреля 2020

Я пытаюсь написать лог 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");
            }
        }
    }

enter image description here

...