0
votes

I came across the link below, and have questions:

https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-checkpointing-and-replay

1 When an OrchestrationTrigger Durable Function is invoked, and crashes for some reasons (e.g. after max timeout duration of 10 mins), will the inputs, names, below be read from table storage or queue automatically.

[FunctionName("E1_HelloSequence")]
public static async Task<List<string>> Run(
    [OrchestrationTrigger] DurableOrchestrationContext context)
{
    var names= ctx.GetInput<List<string>>();

    var outputs = new List<string>();

    outputs.Add(await context.CallActivityAsync<string>("E1_SayHello", names[0]));
    outputs.Add(await context.CallActivityAsync<string>("E1_SayHello", names[1]));
    // returns ["Hello Tokyo!", "Hello Seattle!"]
    return outputs;
}

2 After it crashes, will it re-start automatically.

3 At each await, the function transits into wait status, does the wait period contribute to part of max timeout duration?

1
On the link that you provided, in the NOTE its written These patterns ensure that no data is lost if there is a crash or loss of connectivity in the middle of a checkpoint.HariHaran

1 Answers

1
votes

Hi as Chris from Function Product Group is already involved with you on GitHub Thread. Posting it here so that it is beneficial for other members as well.

1) Yes, the results of any executed activity function will be read from table storage.

2) Yes, the function will retry automatically. An existing queue message ensures this.

3) No, time spent awaiting does not count against your max function timeout. Nor are you billed for time spent awaiting.