У меня есть проблема, которая требует немедленного выполнения длительной задачи, а затем быстрой задачи, выполняемой на более позднем этапе с использованием результата длительной задачи. Я думал, что смогу сделать что-то подобное с Azure долговременной функцией:
[FunctionName("MyFunction")]
public static async Task RunOrchestrator([OrchestrationTrigger] IDurableOrchestrationContext context)
{
var myThing = LongRunningTask();
var result = await context.WaitForExternalEvent<object>("SomeEvent");
myThing.DoSomething(result);
}
Я неправильно понял, как работают функции, и теперь понимаю, что моя долгосрочная задача воспроизводится каждый раз при запуске внешнего события. Это явно не желаемое поведение.
Есть ли способ достичь того, что я хочу, с помощью долговременных функций - или какого-либо другого типа ресурса? К сожалению, в этом случае результат долгосрочной задачи (myThing
выше) не может быть сериализован, что, я думаю, упростило бы вещи.