前のアクティビティ関数によって決定された入力を持つ永続的な関数があります。アクティビティ関数ごとに、各タスクが前のタスクの出力に依存する複数の待機可能なタスクがあります。
これは次のような私の構造です:
オーケストレーター
[FunctionName("MessageController")]
public static async void Run(
[OrchestrationTrigger] DurableOrchestrationContext context,
TraceWriter log)
{
if (!context.IsReplaying) log.Warning("MessageController started");
var Input1= context.CallActivityAsync<ResultMessage>("Function_1", new InputMessage());
var Input2= context.CallActivityAsync<ResultMessage>("Function_2", Input1);
var Input3= context.CallActivityAsync<ResultMessage>("Function_2", Input2);
}
活動機能
[FunctionName("Function_1")]
public static ResultMessage Run(
[ActivityTrigger] DurableActivityContext activityContext,
TraceWriter log)
{
//Awaitable task
var taskOutput= await DoSomething();
//Awaitable task
var token = await DoAnotherThing(taskOutput);
}
私はこれをテストしましたが、すべて正常に動作します。しかし、これが良い習慣かどうか疑問に思っていますか?耐久性のある関数のアクティビティ関数内に待機可能なタスクがあるのは正常ですか?