Vous implémentez un workflow Durable Functions pour les approbations de dépenses. L'orchestrateur doit attendre jusqu'à 48 heures l'approbation d'un responsable, puis continuer. Si aucune approbation n'est reçue dans les 48 heures, il doit rejeter automatiquement et envoyer une notification. La solution doit être résiliente aux redémarrages et aux relectures. Que devez-vous implémenter dans l'orchestrateur ?
Choisissez une réponse
Appuyez sur une option pour vérifier votre réponse.
Bonne réponse : Attendre un événement externe (par exemple, "Approved") et créer un minuteur durable de 48 heures, attendre Task.WhenAny(eventTask, timerTask), annuler le minuteur si l'approbation arrive en premier, sinon continuer avec le rejet..
Pourquoi c'est la réponse
L'approche correcte utilise Task.WhenAny avec un événement externe et un minuteur durable. Cela permet à l'orchestrateur d'attendre soit l'approbation (événement externe), soit l'expiration du délai (minuteur), tout en étant résilient aux redémarrages et aux relectures grâce à la nature durable de ces opérations. Si l'approbation arrive en premier, le minuteur est annulé, évitant ainsi des actions inutiles. Les autres options sont incorrectes car : Interroger une base de données avec une fonction d'activité et Thread.Sleep est inefficace, coûteux et ne gère pas la résilience de l'orchestrateur de manière native. Thread.Sleep dans un orchestrateur est une anti-pattern, car il bloque l'orchestrateur et n'est pas résilient aux relectures. L'utilisation d'un message de file d'attente avec un délai d'invisibilité ne réhydrate pas directement l'orchestrateur de manière fiable pour un scénario d'attente conditionnelle.
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