Tworzysz przepływ pracy Durable Functions, który odbiera listę 50 000 adresów URL obrazów i musi równolegle wyodrębnić metadane EXIF dla każdego obrazu, a następnie zwrócić jedną zagregowaną listę. Orchestrator musi pozostać deterministyczny i być w stanie poprawnie wznowić działanie po ponownym odtworzeniu lub ponownym uruchomieniu. Co należy zrobić w funkcji orchestratora, aby zaimplementować wzorzec fan-out/fan-in?
Wybierz odpowiedź
Dotknij opcji, aby sprawdzić swoją odpowiedź.
Poprawna odpowiedź: Iteruj po adresach URL, zaplanuj każdą aktywność za pomocą CallActivityAsync`<T>`, zbierz zwrócone obiekty Task`<T>` na liście, a następnie poczekaj na Task.WhenAll(tasks) i zagreguj wyniki..
Dlaczego to jest odpowiedź
Poprawna odpowiedź implementuje wzorzec fan-out/fan-in w sposób deterministyczny, zgodny z Durable Functions. Iterowanie po adresach URL i asynchroniczne wywoływanie CallActivityAsync<T dla każdego z nich tworzy rozproszenie zadań. Zbieranie obiektów Task<T na liście, a następnie użycie Task.WhenAll(tasks) pozwala na równoległe oczekiwanie na zakończenie wszystkich aktywności, co jest kluczowe dla determinizmu i prawidłowego odtwarzania stanu. Następnie wyniki są agregowane. Użycie Parallel.ForEach w orchestratorze jest niedeterministyczne i może prowadzić do problemów z odtwarzaniem. Wywołanie pojedynczej aktywności dla wszystkich adresów URL nie wykorzystuje równoległości i może prowadzić do przekroczenia limitu czasu wykonania aktywności. ContinueAsNew służy do restartowania orchestratora w celu zarządzania stanem, a nie do implementacji fan-out/fan-in.
Zdaj egzamin — bez niekończącego się szukania odpowiedzi
Uzyskaj wszystkie zweryfikowane pytania i wyjaśnienia do tego egzaminu w jednym miejscu i zaoszczędź godziny przygotowań. Ponad 1000 certyfikacji · Ponad 20 języków · Zacznij za darmo.
Zdaj egzamin szybciej → Karta nie jest wymagana