50,000個の画像URLのリストを受け取り、各画像のEXIFメタデータを並行して抽出し、単一の集約されたリストを返すDurable Functionsワークフローを構築しています。オーケストレーターは決定論的であり続け、リプレイまたは再起動後に正しく再開できる必要があります。ファンアウト/ファンインパターンを実装するために、オーケストレーター関数で何をすべきですか?
解答を選択
オプションをタップして解答を確認してください。
正解: URLを反復処理し、CallActivityAsync`<T>`ですべてのアクティビティをスケジュールし、返されたTask`<T>`オブジェクトをリストに収集し、その後Task.WhenAll(tasks)を待機して結果を集約します。.
これが解答である理由
このアプローチは、Durable Functionsのファンアウト/ファンインパターンを正しく実装しています。CallActivityAsyncは各画像URLのEXIF抽出を非同期に開始し、Taskオブジェクトのリストを返します。Task.WhenAll(tasks)を使用することで、すべての非同期操作が完了するのを効率的に待機し、結果を集約できます。これにより、オーケストレーターの決定論性が維持され、リプレイや再起動後も正しく再開できます。 Parallel.ForEachはオーケストレーター内で使用すると決定論性を損なう可能性があり、Task.Resultはオーケストレーターをブロックするため推奨されません。単一のアクティビティで全てのURLを処理すると、タイムアウトやスケーラビリティの問題が発生する可能性があります。ContinueAsNewはオーケストレーターの状態をリセットするために使用されますが、このシナリオではファンアウト/ファンインの集約には直接関係ありません。
試験に合格 — 終わりのない解答探しなしで
この試験のすべての検証済み問題と解説を1か所で入手し、準備時間を大幅に節約しましょう。1,000以上の認定 · 20以上の言語 · 無料で開始。
試験に早く合格する → カード不要