Stai creando un workflow Durable Functions che riceve un elenco di 50.000 URL di immagini e deve estrarre i metadati EXIF per ogni immagine in parallelo, quindi restituire un singolo elenco aggregato. L'orchestrator deve rimanere deterministico ed essere in grado di riprendere correttamente dopo replay o riavvii. Cosa dovresti fare nella funzione orchestrator per implementare il pattern fan-out/fan-in?
Scegli una risposta
Tocca un'opzione per controllare la tua risposta.
Risposta corretta: Iterare sugli URL, pianificare ogni attività con CallActivityAsync`<T>`, raccogliere gli oggetti Task`<T>` restituiti in un elenco, quindi attendere Task.WhenAll(tasks) e aggregare i risultati..
Perché questa è la risposta
Questa opzione implementa correttamente il pattern fan-out/fan-in in Durable Functions. Iterare sugli URL e pianificare ogni attività con CallActivityAsync<T distribuisce il lavoro (fan-out). Raccogliere gli oggetti Task<T e utilizzare Task.WhenAll(tasks) attende il completamento di tutte le attività in parallelo, garantendo la determinismo e la corretta ripresa in caso di replay. Infine, aggregare i risultati completa il pattern (fan-in). Parallel.ForEach non è deterministico e non dovrebbe essere usato direttamente nell'orchestrator. Richiamare una singola attività che esegue il loop su tutti gli URL non sfrutta il parallelismo di Durable Functions e potrebbe causare timeout. ContinueAsNew è per orchestrazioni di lunga durata o per ridurre l'utilizzo della memoria, non per il fan-out/fan-in.
Supera il tuo esame — senza l'infinita caccia alle risposte
Ottieni ogni domanda e spiegazione verificata per questo esame in un unico posto, e risparmia ore di preparazione. Oltre 1.000 certificazioni · Oltre 20 lingue · Inizia gratuitamente.
Supera il tuo esame più velocemente → Nessuna carta richiesta