Пакет Azure и варианты использования для JobManagerTask

#azure #azure-sdk-.net #azure-batch

Вопрос:

В настоящее время я изучаю пакетную службу Azure, и меня смущает правильное использование a JobManagerTask

…и, возможно, как должна выглядеть общая архитектура пакетного приложения Azure. Я построил нижеприведенную архитектуру на основе примеров кода от Microsoft, найденных на Github .

Это мои текущие компоненты приложения.

Приложение 1 — Кластерная головка

  • Создает задание (включая автоматический пул)
  • Определяет JobManagerTask
  • Выполняется на рабочей станции

Приложение 2 — Задача управления работой

  • Разбивает входные данные на куски
  • Помещает куски (единицу работы) во входную очередь
  • Создает задачи ( CloudTask )

Приложение 3 — Загрузчик

  • Извлекает из входной очереди
  • Выполняет задачу
  • Переводит в очередь вывода

Учетная запись хранения Azure

  • Связана с учетной записью пакетной службы Azure
  • Предоставляет очереди ввода и вывода
  • Предоставляет таблицу результатов

Лазурная Долговечная Функция

  • Реализует шаблон агрегатора с помощью DurableEntities, чтобы я мог преждевременно получить доступ к входящим результатам.
  • Запускается сообщениями в очереди вывода
  • Агрегирует результаты и записывает сущность в таблицу хранилища Azure

Вопросы

  • Правильно ли это использовать JobManagerTask ?
  • Зачем мне нужен/нужен дополнительный двоичный файл/пакет приложений, который инкапсулирует задачу JobManagerTask?
  • Не мог бы кто-нибудь привести пример того, когда я должен предпочесть использовать a JobManagerTask вместо создания заданий вручную?

Заранее спасибо!

Ответ №1:

Ваш пример является примером того, как можно использовать задачу управления заданиями, хотя, как вы упомянули, если все генерируемые данные генерируются задачей управления заданиями и исправлены, тогда может иметь смысл просто объединить их в вашу головку кластера, как вы упомянули. В вашем случае это зависит только от того, хотите ли вы, чтобы разделение и загрузка ваших данных происходили как часть задания или выполнялись на рабочей станции.

Одна из областей задач управления заданиями excel заключается в том, что поступающие данные являются непрерывными. В принципе, если бы у вас была куча авторов в необработанной входной очереди, вы могли бы запустить свою задачу JobManagerTask, непрерывно считывая данные из этой очереди и разделяя данные/создавая задачи.