Sie erstellen einen Durable Functions-Workflow, der eine Liste von 50.000 Bild-URLs empfängt und EXIF-Metadaten für jedes Bild parallel extrahieren und dann eine einzige aggregierte Liste zurückgeben muss. Der Orchestrator muss deterministisch bleiben und nach Wiederholungen oder Neustarts korrekt fortgesetzt werden können. Was sollten Sie in der Orchestratorfunktion tun, um das Fan-out/Fan-in-Muster zu implementieren?
Wählen Sie eine Antwort
Tippen Sie auf eine Option, um Ihre Antwort zu überprüfen.
Richtige Antwort: Iterieren Sie über die URLs, planen Sie jede Aktivität mit CallActivityAsync`<T>`, sammeln Sie die zurückgegebenen Task`<T>`-Objekte in einer Liste, warten Sie dann auf Task.WhenAll(tasks) und aggregieren Sie die Ergebnisse..
Warum dies die Antwort ist
Die korrekte Implementierung des Fan-out/Fan-in-Musters in Durable Functions besteht darin, über die Liste der URLs zu iterieren und für jede URL eine separate Aktivitätsfunktion mithilfe von CallActivityAsync<T aufzurufen. Diese Aufrufe geben Task<T-Objekte zurück, die gesammelt werden. Anschließend wird Task.WhenAll(tasks) verwendet, um darauf zu warten, dass alle parallelen Aktivitätsfunktionen abgeschlossen sind, bevor die Ergebnisse aggregiert werden. Dies gewährleistet die Determinismus-Anforderung des Orchestrators und ermöglicht eine effiziente parallele Verarbeitung. Parallel.ForEach ist innerhalb einer Orchestratorfunktion nicht deterministisch und sollte vermieden werden. Eine einzelne Aktivität für alle URLs würde die Parallelisierung aufheben. ContinueAsNew ist für die Zustandsverwaltung und nicht für die Implementierung von Fan-out/Fan-in gedacht.
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