c# - Activity Function 被调用后,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?");
}
}
例如,在这个例子中,一次性对象是否直到最后才被丢弃?有没有办法检查我们何时启动一个新功能?
解决方案
编排功能应该是某种“无状态”。他们应该管理和编排活动流(和子编排),但不要自己执行操作或任何 IO 调用。拥有需要处置的对象表示某种非托管资源或 IO 绑定资源。这两者都是编排功能中的“不可行”。
(这可能无法从技术上回答您的问题,但希望能帮助您以一种好的方式设计它们。)
推荐阅读
- javascript - 使用 JavaScript 创建一个特定的计算器
- python - 数字输出的混淆矩阵?- Python
- c - “未定义的行为”和“实现定义的行为”之间有什么区别,或者为什么要区分它们?
- flutter - Flutter:xcode_backend.sh 在哪里?
- python - Django视图只返回不完整的数据,模板只有一个字段
- ssl - 无法识别网站上的混合内容
- asp.net-mvc - “/”应用程序中的服务器错误。无法找到该资源。
- angular - Angular - BrowserAnimationsModule 动画错误
- c++ - 如何从父类调用子方法
- swift - 为什么 Swift 需要显式参数类型,即使它们可以从默认值推断出来?