Можно ли вызывать функции активности из частных методов в оркестраторе функций Durable?

Можно ли вызывать функции активности из частных методов в оркестраторе устойчивых функций или этого следует избегать? Вот пример:

[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);
}

Имейте в виду, что это простой пример, чтобы прояснить вопрос. Я уже знаю, что его можно вызвать непосредственно из функции оркестровки и тем самым пропустить частную функцию. Я не пытаюсь понять, имеет ли это здесь смысл, а просто пытаюсь понять, будут ли непреднамеренные побочные эффекты.


person scottrudy    schedule 22.07.2019    source источник


Ответы (1)


Я полагаю, вы, вероятно, отошли от этой проблемы, но для всех, кто ищет это, да, это должно работать нормально. context будет передан по ссылке, поэтому он по-прежнему будет вызывать функцию активности. Обратите внимание, однако, что ограничения на оркестровки по-прежнему будут применяться к частному методу, поэтому не awaiting что-либо, вызванное чем-либо, кроме context.

person TheDoc    schedule 03.04.2020