因此,我在持久性函数中意识到,当调用活动函数时,当前的持久性函数实际上会停止并等待重新开始。我的问题是原始持久功能如何退出?我已经进行了一些调试,并且没有引发异常,也没有返回任何值。它如何退出?
[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?");
}
}
例如,在此示例中,是否要丢弃一次性物品直到结束?有什么方法可以检查我们何时启动新功能?
答案 0 :(得分:0)
编排功能应该是某种“无状态”。他们应该管理和编排活动(和子编排)的流程,但不要执行任何操作或任何IO自己调用。拥有需要处置的对象表示某种非托管资源或IO绑定资源。在编排功能中,这两个都是“不可行的”。
(这可能不会从技术上回答您的问题,但希望可以帮助您以一种不错的方式设计它们。)