调用活动函数后,持久函数会如何处理?

时间:2020-09-24 19:53:55

标签: c# azure azure-functions azure-durable-functions

因此,我在持久性函数中意识到,当调用活动函数时,当前的持久性函数实际上会停止并等待重新开始。我的问题是原始持久功能如何退出?我已经进行了一些调试,并且没有引发异常,也没有返回任何值。它如何退出?

   [FunctionName("DurableFunction")]
    public static async Task Durable([OrchestrationTrigger] IDurableOrchestrationContext context, ILogger log)
    {
        try
        {
            using (DisposeObject t = new DisposeObject("We created a new context", log))
            {
                string s = context.GetInput<string>();
                string result = await context.CallActivityAsync<string>("ActivityFunction", s);
                log.LogInformation(result);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        finally
        {
            Console.WriteLine("When does this get hit?");
        }
    }

例如,在此示例中,是否要丢弃一次性物品直到结束?有什么方法可以检查我们何时启动新功能?

1 个答案:

答案 0 :(得分:0)

编排功能应该是某种“无状态”。他们应该管理和编排活动(和子编排)的流程,但不要执行任何操作或任何IO自己调用。拥有需要处置的对象表示某种非托管资源或IO绑定资源。在编排功能中,这两个都是“不可行的”。

(这可能不会从技术上回答您的问题,但希望可以帮助您以一种不错的方式设计它们。)