可以在持久函数编排器中从私有方法调用活动函数,还是应该避免这种情况?这是一个示例:
[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);
}
请记住,这是一个阐明问题的简单示例。我已经知道可以直接从业务流程功能调用它,从而跳过私有功能。我不是在这里看是否有意义,而只是在试图了解是否会有意想不到的副作用。
答案 0 :(得分:1)
我想您可能已经摆脱了这个问题,但是对于其他寻求此解决方案的人来说,这应该可以正常工作。 context
将通过引用传递,因此它将仍然是调用活动函数的那个。但是请注意,对业务流程的限制仍将适用于私有方法,因此,请勿await
对除context
之外的任何事物进行调用。