BatchJobManagerTask interface
Указывает сведения о задаче диспетчера заданий. Задача диспетчера заданий автоматически запускается при создании задания. Пакетная служба пытается запланировать задачу диспетчера заданий перед любыми другими задачами в задании. При сокращении пула служба пакетной службы пытается сохранить узлы, где выполняются задачи диспетчера заданий в течение максимально возможного времени (т. е. вычислительные узлы, выполняющие "обычные" задачи, удаляются перед выполнением вычислительных узлов, выполняющих задачи диспетчера заданий). Если задача диспетчера заданий завершается сбоем и должна быть перезапущена, система пытается запланировать ее с наивысшим приоритетом. Если нет доступных неактивных вычислительных узлов, система может завершить одну из выполняемых задач в пуле и вернуть ее в очередь, чтобы освободить место для перезапуска задачи диспетчера заданий. Обратите внимание, что задача диспетчера заданий в одном задании не имеет приоритета над задачами в других заданиях. В заданиях наблюдаются только приоритеты на уровне заданий. Например, если диспетчер заданий в приоритете 0 должен быть перезапущен, он не переместит задачи приоритета 1 задания. Пакетная служба будет повторять задачи при активации операции восстановления на узле. Примеры операций восстановления включают (но не ограничиваются) при перезагрузке неработоспособного узла или вычислительном узле исчезли из-за сбоя узла. Повторные попытки из-за операций восстановления не учитываются и не учитываются для maxTaskRetryCount. Даже если значение maxTaskRetryCount равно 0, может произойти внутренняя повторная попытка из-за операции восстановления. Из-за этого все задачи должны быть идемпотентными. Это означает, что задачи должны терпеть прерывание и перезапуск без повреждения или дублирования данных. Рекомендуется использовать определенную форму контрольных точек для длительных задач.
Свойства
| allow |
Может ли задача диспетчера заданий выполняться на точечном/низкоприоритетном вычислительном узле. Значение по умолчанию — true. |
| application |
Список пакетов приложений, которые пакетный сервис развернут на вычислительном узле перед запуском командной строки. Пакеты приложений загружаются и развёртываются в общей директории, а не в рабочем каталоге задач. Следовательно, если ссылка на пакет приложений уже находится на вычислительном узле и актуальна, то он не скачается повторно; используется существующая копия на Compute Node. Если ссылка на пакет приложений не может быть установлен, например, потому что пакет был удален или загрузка не удалась, задача не выполняется. |
| command |
Командная строка задачи менеджера заданий. Командная строка не выполняется под оболочкой и поэтому не может воспользоваться преимуществами функций оболочки, таких как расширение переменной среды. Если вы хотите воспользоваться такими возможностями, стоит вызвать оболочку в командной строке, например, используя "cmd /c MyCommand" в Windows или "/bin/sh -c MyCommand" в Linux. Если командная строка ссылается на пути к файлам, она должна использовать относительный путь (относительно рабочего каталога задачи) или использовать указанную пакетную переменную среды (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Ограничения, применимые к задаче менеджера по работе. |
| container |
Настройки контейнера, под которым выполняется задача Менеджера заданий. Если пул, который будет выполнять эту задачу, имеет установленную конфигурацию контейнера, то и она должна быть установлена. Если пул, выполняющий эту задачу, не имеет установленного containerConfiguration, это не должно быть установлено. Когда это указано, все каталоги рекурсивно ниже AZ_BATCH_NODE_ROOT_DIR (корня пакетная служба Azure каталогов на узле) отображаются в контейнер, все переменные среды задачи отображаются в контейнер, и в контейнере выполняется командная строка задачи. Файлы, созданные в контейнере вне AZ_BATCH_NODE_ROOT_DIR, могут не отражаться на хост-диске, что означает, что API пакетных файлов не смогут получить доступ к этим файлам. |
| display |
Отображаемое имя задачи менеджера заданий. Он не обязательно является уникальным и может содержать любые символы Unicode до максимальной длины 1024. |
| environment |
Список настроек переменных среды для задачи менеджера заданий. |
| id | Строка, которая уникально идентифицирует задачу менеджера заданий внутри задачи. ID может содержать любую комбинацию буквенно-цифровых символов, включая дефисы и подчёркивания, и не может содержать более 64 символов. |
| kill |
Означает ли выполнение задачи менеджера по работе с работой завершение всей работы. Если это верно, когда задача менеджера заданий завершается, пакетная служба отмечает задание как завершённое. Если какие-либо задачи всё ещё выполняются в данный момент (кроме Job Release), эти задачи завершаются. Если это ошибка, выполнение задачи менеджера не влияет на статус работы. В этом случае следует либо использовать атрибут onAllTasksComplete для завершения задания, либо чтобы клиент или пользователь явно завершил её. Примером может служить ситуация, когда менеджер заданий создаёт набор задач, но затем не принимает дальнейшей роли в их выполнении. Значение по умолчанию — true. Если вы используете атрибуты onAllTasksComplete и onTaskFailure для управления сроком жизни Job, а Job Manager Task — только для создания задач для задания (а не для мониторинга прогресса), важно установить killJobOnCompletion в false. |
| output |
Список файлов, которые пакетная служба загрузит с вычислительного узла после запуска командной строки. Для многоэкземплярных задач файлы загружаются только с вычислительного узла, на котором выполняется основная задача. |
| required |
Количество слотов для планирования, которые требуется для выполнения задачи. Значение по умолчанию — 1. Задача может быть запланирована для выполнения на вычислительном узле только если у узла достаточно свободных слотов для планирования. Для многоэкземплярных задач это свойство не поддерживается и не должно указываться. |
| resource |
Список файлов, которые служба пакетной службы скачивает на вычислительный узел перед выполнением командной строки. Файлы, перечисленные в этом элементе, находятся в рабочем каталоге задачи. Существует максимальный размер списка файлов ресурсов. При превышении максимального размера запрос завершится ошибкой, и код ошибки ответа будет RequestEntityTooLarge. В этом случае коллекция ResourceFiles должна быть уменьшена. Это можно сделать с помощью .zip файлов, пакетов приложений или контейнеров Docker. |
| run |
Требует ли задача диспетчера заданий исключительно использовать вычислительный узел на месте запуска. Если это верно, то ни одна другая задача не будет выполняться на том же узле так долго, как работает менеджер заданий. Если ошибка, другие задачи могут выполняться одновременно с менеджером задач на вычислительном узле. Задача менеджера заданий обычно засчитывается к ограничению параллельных задач вычислительного узла, поэтому это актуально только если вычислительный узел допускает несколько одновременных задач. Значение по умолчанию — true. |
| user |
Идентификатор пользователя, под которым выполняется задача диспетчера заданий. Если задача опущена, она выполняется как неадминистративный пользователь, уникальный для задачи. |
Сведения о свойстве
allowLowPriorityNode
Может ли задача диспетчера заданий выполняться на точечном/низкоприоритетном вычислительном узле. Значение по умолчанию — true.
allowLowPriorityNode?: boolean
Значение свойства
boolean
applicationPackageReferences
Список пакетов приложений, которые пакетный сервис развернут на вычислительном узле перед запуском командной строки. Пакеты приложений загружаются и развёртываются в общей директории, а не в рабочем каталоге задач. Следовательно, если ссылка на пакет приложений уже находится на вычислительном узле и актуальна, то он не скачается повторно; используется существующая копия на Compute Node. Если ссылка на пакет приложений не может быть установлен, например, потому что пакет был удален или загрузка не удалась, задача не выполняется.
applicationPackageReferences?: BatchApplicationPackageReference[]
Значение свойства
commandLine
Командная строка задачи менеджера заданий. Командная строка не выполняется под оболочкой и поэтому не может воспользоваться преимуществами функций оболочки, таких как расширение переменной среды. Если вы хотите воспользоваться такими возможностями, стоит вызвать оболочку в командной строке, например, используя "cmd /c MyCommand" в Windows или "/bin/sh -c MyCommand" в Linux. Если командная строка ссылается на пути к файлам, она должна использовать относительный путь (относительно рабочего каталога задачи) или использовать указанную пакетную переменную среды (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Значение свойства
string
constraints
Ограничения, применимые к задаче менеджера по работе.
constraints?: BatchTaskConstraints
Значение свойства
containerSettings
Настройки контейнера, под которым выполняется задача Менеджера заданий. Если пул, который будет выполнять эту задачу, имеет установленную конфигурацию контейнера, то и она должна быть установлена. Если пул, выполняющий эту задачу, не имеет установленного containerConfiguration, это не должно быть установлено. Когда это указано, все каталоги рекурсивно ниже AZ_BATCH_NODE_ROOT_DIR (корня пакетная служба Azure каталогов на узле) отображаются в контейнер, все переменные среды задачи отображаются в контейнер, и в контейнере выполняется командная строка задачи. Файлы, созданные в контейнере вне AZ_BATCH_NODE_ROOT_DIR, могут не отражаться на хост-диске, что означает, что API пакетных файлов не смогут получить доступ к этим файлам.
containerSettings?: BatchTaskContainerSettings
Значение свойства
displayName
Отображаемое имя задачи менеджера заданий. Он не обязательно является уникальным и может содержать любые символы Unicode до максимальной длины 1024.
displayName?: string
Значение свойства
string
environmentSettings
Список настроек переменных среды для задачи менеджера заданий.
environmentSettings?: EnvironmentSetting[]
Значение свойства
id
Строка, которая уникально идентифицирует задачу менеджера заданий внутри задачи. ID может содержать любую комбинацию буквенно-цифровых символов, включая дефисы и подчёркивания, и не может содержать более 64 символов.
id: string
Значение свойства
string
killJobOnCompletion
Означает ли выполнение задачи менеджера по работе с работой завершение всей работы. Если это верно, когда задача менеджера заданий завершается, пакетная служба отмечает задание как завершённое. Если какие-либо задачи всё ещё выполняются в данный момент (кроме Job Release), эти задачи завершаются. Если это ошибка, выполнение задачи менеджера не влияет на статус работы. В этом случае следует либо использовать атрибут onAllTasksComplete для завершения задания, либо чтобы клиент или пользователь явно завершил её. Примером может служить ситуация, когда менеджер заданий создаёт набор задач, но затем не принимает дальнейшей роли в их выполнении. Значение по умолчанию — true. Если вы используете атрибуты onAllTasksComplete и onTaskFailure для управления сроком жизни Job, а Job Manager Task — только для создания задач для задания (а не для мониторинга прогресса), важно установить killJobOnCompletion в false.
killJobOnCompletion?: boolean
Значение свойства
boolean
outputFiles
Список файлов, которые пакетная служба загрузит с вычислительного узла после запуска командной строки. Для многоэкземплярных задач файлы загружаются только с вычислительного узла, на котором выполняется основная задача.
outputFiles?: OutputFile[]
Значение свойства
requiredSlots
Количество слотов для планирования, которые требуется для выполнения задачи. Значение по умолчанию — 1. Задача может быть запланирована для выполнения на вычислительном узле только если у узла достаточно свободных слотов для планирования. Для многоэкземплярных задач это свойство не поддерживается и не должно указываться.
requiredSlots?: number
Значение свойства
number
resourceFiles
Список файлов, которые служба пакетной службы скачивает на вычислительный узел перед выполнением командной строки. Файлы, перечисленные в этом элементе, находятся в рабочем каталоге задачи. Существует максимальный размер списка файлов ресурсов. При превышении максимального размера запрос завершится ошибкой, и код ошибки ответа будет RequestEntityTooLarge. В этом случае коллекция ResourceFiles должна быть уменьшена. Это можно сделать с помощью .zip файлов, пакетов приложений или контейнеров Docker.
resourceFiles?: ResourceFile[]
Значение свойства
runExclusive
Требует ли задача диспетчера заданий исключительно использовать вычислительный узел на месте запуска. Если это верно, то ни одна другая задача не будет выполняться на том же узле так долго, как работает менеджер заданий. Если ошибка, другие задачи могут выполняться одновременно с менеджером задач на вычислительном узле. Задача менеджера заданий обычно засчитывается к ограничению параллельных задач вычислительного узла, поэтому это актуально только если вычислительный узел допускает несколько одновременных задач. Значение по умолчанию — true.
runExclusive?: boolean
Значение свойства
boolean
userIdentity
Идентификатор пользователя, под которым выполняется задача диспетчера заданий. Если задача опущена, она выполняется как неадминистративный пользователь, уникальный для задачи.
userIdentity?: UserIdentity