Sie implementieren einen Durable Functions-Workflow für Spesenabrechnungen. Der Orchestrator muss bis zu 48 Stunden auf die Genehmigung eines Managers warten und dann fortfahren. Wenn innerhalb von 48 Stunden keine Genehmigung eingeht, muss er automatisch ablehnen und eine Benachrichtigung senden. Die Lösung muss gegen Neustarts und Wiederholungen resistent sein. Was sollten Sie im Orchestrator implementieren?
Wählen Sie eine Antwort
Tippen Sie auf eine Option, um Ihre Antwort zu überprüfen.
Richtige Antwort: Warten Sie auf ein externes Ereignis (z. B. „Approved“) und erstellen Sie einen Durable Timer für 48 Stunden, await Task.WhenAny(eventTask, timerTask), brechen Sie den Timer ab, wenn die Genehmigung zuerst eintrifft, andernfalls fahren Sie mit der Ablehnung fort..
Warum dies die Antwort ist
Die korrekte Lösung verwendet Task.WhenAny mit einem externen Ereignis und einem Durable Timer. Dies ist der empfohlene Weg, um in Durable Functions auf menschliche Interaktion mit einem Timeout zu warten. Der Durable Timer ist fehlertolerant und übersteht Neustarts des Orchestrators. Wenn das Genehmigungsereignis zuerst eintrifft, wird der Timer abgebrochen, und der Workflow fährt fort. Wenn der Timer zuerst abläuft, wird der Workflow automatisch abgelehnt. Das Abfragen einer Datenbank in einer Aktivitätsfunktion mit Thread.Sleep ist ineffizient und nicht fehlertolerant für den Orchestrator. Thread.Sleep im Orchestrator selbst würde die Orchestrierung blockieren und ist nicht fehlertolerant. Eine Warteschlangennachricht mit Unsichtbarkeitsverzögerung ist keine direkte Orchestrator-Funktion zur Implementierung von Timeouts und würde die Komplexität unnötig erhöhen.
Bestehen Sie Ihre Prüfung – ohne endlose Antwortsuche
Erhalten Sie jede verifizierte Frage und Erklärung für diese Prüfung an einem Ort und sparen Sie Stunden der Vorbereitung. Über 1.000 Zertifizierungen · Über 20 Sprachen · Kostenloser Start.
Bestehen Sie Ihre Prüfung schneller → Keine Karte erforderlich