Vous développez un workflow Durable Functions qui reçoit une liste de 50 000 URL d'images et doit extraire les métadonnées EXIF de chaque image en parallèle, puis renvoyer une seule liste agrégée. L'orchestrateur doit rester déterministe et être capable de reprendre correctement après des relectures ou des redémarrages. Que devez-vous faire dans la fonction d'orchestrateur pour implémenter le modèle fan-out/fan-in ?
Choisissez une réponse
Appuyez sur une option pour vérifier votre réponse.
Bonne réponse : Itérer sur les URL, planifier chaque activité avec CallActivityAsync`<T>`, collecter les objets Task`<T>` renvoyés dans une liste, puis attendre Task.WhenAll(tasks) et agréger les résultats..
Pourquoi c'est la réponse
La bonne approche pour le modèle fan-out/fan-in dans Durable Functions est d'itérer sur la liste des URL, de planifier une fonction d'activité distincte pour chaque URL en utilisant CallActivityAsync<T, de collecter les objets Task<T résultants dans une liste, puis d'utiliser Task.WhenAll(tasks) pour attendre la fin de toutes les activités en parallèle. Cela garantit le déterminisme de l'orchestrateur et permet une reprise correcte après des relectures, car Task.WhenAll gère la coordination des résultats. L'utilisation de Parallel.ForEach directement dans l'orchestrateur est incorrecte car cela briserait le déterminisme de l'orchestrateur. Invoquer une seule activité pour toutes les URL n'exploiterait pas le parallélisme et pourrait entraîner des timeouts pour une liste aussi grande. Appeler ContinueAsNew après chaque activité n'est pas le but de cette fonctionnalité et ne résoudrait pas le problème de fan-out/fan-in.
Réussissez votre examen — sans la chasse aux réponses interminable
Obtenez toutes les questions et explications vérifiées pour cet examen en un seul endroit, et économisez des heures de préparation. Plus de 1 000 certifications · Plus de 20 langues · Gratuit pour commencer.
Réussissez votre examen plus rapidement → Pas de carte requise