Функции Azure - долговечные функции, SetCustomStatus не обновляется - PullRequest
0 голосов
/ 05 февраля 2019

Я создал долговременную функцию на основе примеров Microsoft из шаблона «Async HTTP API».

В моем потоке кода я хочу обновить «SetCustomStatus», не используя «await contextReq.CallActivityAsync».

Возможно ли это?поскольку моя постоянная функция остается в состоянии «Ожидание», а «customStatus» не обновляется.

Фрагмент кода:

[FunctionName("UpdateItemsWithProgress")]
    public static async Task<HttpResponseMessage> HttpStart(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")]HttpRequestMessage req,
        [OrchestrationClient]DurableOrchestrationClient starter,
        ILogger log)
    {
        dynamic jsonMessage = await req.Content.ReadAsAsync<object>();
        try
        {
            string contentType = req.Content.Headers?.ContentType?.MediaType;

            if (contentType == "application/json")
            {
                    string instanceId = await starter.StartNewAsync("updateTransitItem", jsonMessage);

                    log.LogInformation($"Started orchestration with ID = '{instanceId}'.");

                    return starter.CreateCheckStatusResponse(req, instanceId);
            } else
            {
                return starter.CreateCheckStatusResponse(req, null);
            }

        }
        catch (Exception e)
        {

            return starter.CreateCheckStatusResponse(req, e.Message);
        }

    }

    [FunctionName("updateTransitItem")]
    public static async Task<object> RunOrchestrator(
        [OrchestrationTrigger] DurableOrchestrationContext contextReq)
    {
        dynamic dynObj = contextReq.GetInput<object>();
        contextReq.SetCustomStatus("Working...");

        // doing stuff

        contextReq.SetCustomStatus("1");

        // doing stuff

        contextReq.SetCustomStatus("2");

        // doing stuff

        return "Success"

     }

1 Ответ

0 голосов
/ 05 февраля 2019

Здесь можно ответить: https://social.msdn.microsoft.com/Forums/en-US/767d5be5-4ba9-4b53-9838-9e32dfa7bdb3/azure-functions-durable-functions-setcustomstatus-not-updating?forum=AzureFunctions.

Чтобы скопировать ответ -

Я не верю, что статус сохраняется где-либо до вызова операции.Поэтому, если вы никогда не позвоните, он никогда не будет обновлен.

...