Вы создаете рабочий процесс Durable Functions, который получает список из 50 000 URL-адресов изображений и должен параллельно извлекать метаданные EXIF для каждого изображения, а затем возвращать единый агрегированный список. Оркестратор должен оставаться детерминированным и иметь возможность корректно возобновлять работу после повторов или перезапусков. Что следует сделать в функции оркестратора для реализации паттерна fan-out/fan-in?
Выберите ответ
Нажмите на вариант, чтобы проверить свой ответ.
Правильный ответ: Перебрать URL-адреса, запланировать каждое действие с помощью CallActivityAsync`<T>`, собрать возвращенные объекты Task`<T>` в список, затем дождаться Task.WhenAll(tasks) и агрегировать результаты..
Почему это правильный ответ
Правильный ответ описывает стандартный паттерн fan-out/fan-in в Durable Functions. CallActivityAsync<T асинхронно вызывает функцию действия для каждого URL-адреса, а сбор объектов Task<T в список с последующим Task.WhenAll(tasks) позволяет оркестратору дождаться завершения всех параллельных операций, сохраняя при этом детерминизм и устойчивость к перезапускам. Использование Parallel.ForEach внутри оркестратора нарушает детерминизм. Вызов одного действия для всех URL-адресов не использует параллелизм Durable Functions и может привести к тайм-аутам. ContinueAsNew используется для сброса состояния оркестратора при длительных или больших рабочих процессах, но не для реализации fan-out/fan-in.
Сдайте экзамен — без бесконечного поиска ответов
Получите все проверенные вопросы и объяснения для этого экзамена в одном месте и сэкономьте часы подготовки. 1000+ сертификаций · 20+ языков · начните бесплатно.
Сдайте экзамен быстрее → Карта не требуется