在持久函数编排器中从私有方法调用活动函数是否合适?

时间:2019-07-22 17:44:18

标签: c# azure-durable-functions

可以在持久函数编排器中从私有方法调用活动函数,还是应该避免这种情况?这是一个示例:

[FunctionName(nameof(OrchFunc))]
public async Task OrchFunc(
    [OrchestrationTrigger] DurableOrchestrationContext context,
    ILogger logger) {
    var myParameter = context.GetInput<string>();
    // Any issue with doing this with the way checkpoints work?
    var result = await MyPrivateFunc(context, myProperty);
}

private async Task<bool> MyPrivateFunc(
    DurableOrchestrationContext context,
    string myParameter) {
    return result = await context.CallActivityAsync<bool>(nameof(MyActivityFunc), myParameter);
}

请记住,这是一个阐明问题的简单示例。我已经知道可以直接从业务流程功能调用它,从而跳过私有功能。我不是在这里看是否有意义,而只是在试图了解是否会有意想不到的副作用。

1 个答案:

答案 0 :(得分:1)

我想您可能已经摆脱了这个问题,但是对于其他寻求此解决方案的人来说,这应该可以正常工作。 context将通过引用传递,因此它将仍然是调用活动函数的那个​​。但是请注意,对业务流程的限制仍将适用于私有方法,因此,请勿await对除context之外的任何事物进行调用。