Поделиться через


JobManagerTask Класс

Указывает сведения о задаче диспетчера заданий.

Задача диспетчера заданий автоматически запускается при создании задания. Пакетная служба пытается запланировать задачу диспетчера заданий перед любыми другими задачами в задании. При сжатии пула пакетная служба пытается сохранить узлы, на которых выполняются задачи диспетчера заданий, как можно дольше (то есть вычислительные узлы, выполняющие "обычные" задачи, удаляются до вычислительных узлов, выполняющих задачи диспетчера заданий). Если задача диспетчера заданий завершается сбоем и ее необходимо перезапустить, система пытается запланировать ее с наивысшим приоритетом. Если отсутствуют неактивные вычислительные узлы, система может завершить одну из выполняющихся задач в пуле и вернуть ее в очередь, чтобы освободить место для перезапуска задачи диспетчера заданий. Обратите внимание, что задача диспетчера заданий в одном задании не имеет приоритета над задачами в других заданиях. В заданиях соблюдаются только приоритеты уровня заданий. Например, если необходимо перезапустить диспетчер заданий в приоритете 0, он не вытесняет задачи с приоритетом 1. Пакетная служба будет повторять задачи при запуске операции восстановления на узле. Примеры операций восстановления включают (но не ограничиваются ими), когда неработоспособный узел перезагружается или вычислительный узел исчез из-за сбоя узла. Повторные попытки из-за операций восстановления не зависят от maxTaskRetryCount и не учитываются. Даже если maxTaskRetryCount равно 0, может произойти внутренняя повторная попытка из-за операции восстановления. Поэтому все задачи должны быть идемпотентными. Это означает, что задачи должны быть прерваны и перезапущены без повреждения или дублирования данных. Для длительных задач рекомендуется использовать некоторые формы контрольных точек.

Все необходимые параметры должны быть заполнены для отправки в Azure.

Наследование
JobManagerTask

Конструктор

JobManagerTask(*, id: str, command_line: str, display_name: str = None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, constraints=None, required_slots: int = None, kill_job_on_completion: bool = None, user_identity=None, run_exclusive: bool = None, application_package_references=None, authentication_token_settings=None, allow_low_priority_node: bool = None, **kwargs)

Параметры

id
str
Обязательно

Обязательный. Идентификатор может содержать любое сочетание буквенно-цифровых символов, включая дефисы и символы подчеркивания, и не может содержать более 64 символов.

display_name
str
Обязательно

Он не должен быть уникальным и может содержать любые символы Юникода длиной до 1024.

command_line
str
Обязательно

Обязательный. Командная строка не выполняется в оболочке и поэтому не может использовать преимущества таких функций оболочки, как расширение переменной среды. Если вы хотите воспользоваться преимуществами таких функций, следует вызвать оболочку в командной строке, например с помощью cmd /c MyCommand в Windows или /bin/sh -c MyCommand в Linux. Если командная строка ссылается на пути к файлам, она должна использовать относительный путь (относительно рабочего каталога задачи) или переменную среды, предоставленную пакетной службой (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Обязательно

Параметры контейнера, в котором выполняется задача диспетчера заданий. Если в пуле, в который будет выполняться эта задача, задан параметр containerConfiguration, его также необходимо задать. Если в пуле, в который будет выполняться эта задача, не задан параметр containerConfiguration, его не следует задавать. Если этот параметр указан, все каталоги рекурсивно под AZ_BATCH_NODE_ROOT_DIR (корневой каталог пакетная служба Azure на узле) сопоставляются с контейнером, все переменные среды задач сопоставляются с контейнером, а командная строка задачи выполняется в контейнере. Файлы, созданные в контейнере за пределами AZ_BATCH_NODE_ROOT_DIR, могут не отражаться на диске узла, а это означает, что API пакетной службы не смогут получить доступ к этим файлам.

resource_files
list[ResourceFile]
Обязательно

Файлы, перечисленные в этом элементе, находятся в рабочем каталоге задачи. Существует максимальный размер списка файлов ресурсов. При превышении максимального размера запрос завершится ошибкой, а код ошибки ответа — RequestEntityTooLarge. В этом случае необходимо уменьшить размер коллекции ResourceFiles. Это можно сделать с помощью .zip файлов, пакетов приложений или контейнеров Docker.

output_files
list[OutputFile]
Обязательно

Для задач с несколькими экземплярами файлы будут отправляться только с вычислительного узла, на котором выполняется основная задача.

environment_settings
list[EnvironmentSetting]
Обязательно
constraints
TaskConstraints
Обязательно

Ограничения, применяемые к задаче диспетчера заданий.

required_slots
int
Обязательно

Количество слотов планирования, необходимых для выполнения задачи. Значение по умолчанию — 1. Задача может быть запланирована на выполнение на вычислительном узле, только если на узле достаточно свободных слотов планирования. Для задач с несколькими экземплярами это свойство не поддерживается и не должно указываться.

kill_job_on_completion
bool
Обязательно

Указывает, означает ли завершение задачи диспетчера заданий завершение всего задания. Если значение равно true, то после завершения задачи диспетчера заданий пакетная служба помечает задание как завершенное. Если в это время все еще выполняются какие-либо задачи (кроме выпуска задания), эти задачи завершаются. Если значение равно false, завершение задачи диспетчера заданий не влияет на состояние задания. В этом случае следует либо использовать атрибут onAllTasksComplete, чтобы завершить задание, либо явно завершить задание клиентом или пользователем. Например, диспетчер заданий создает набор задач, но затем не принимает никаких дополнительных ролей в их выполнении. Значение по умолчанию — true. Если атрибуты onAllTasksComplete и onTaskFailure используются для управления временем существования задания, а задача диспетчера заданий используется только для создания задач для задания (а не для отслеживания хода выполнения), важно задать для killJobOnCompletion значение false.

user_identity
UserIdentity
Обязательно

Удостоверение пользователя, под которым выполняется задача диспетчера заданий. Если этот параметр опущен, задача выполняется от имени пользователя, не являющегося административным, уникальным для задачи.

run_exclusive
bool
Обязательно

Требуется ли для задачи диспетчера заданий монопольное использование вычислительного узла, на котором она выполняется. Если задано значение true, другие задачи не будут выполняться на том же узле до тех пор, пока запущен диспетчер заданий. Если значение равно false, другие задачи могут выполняться одновременно с диспетчером заданий на вычислительном узле. Задача диспетчера заданий обычно учитывается по отношению к ограничению параллельных задач вычислительного узла, поэтому это актуально только в том случае, если вычислительный узел допускает несколько параллельных задач. Значение по умолчанию — true.

application_package_references
list[ApplicationPackageReference]
Обязательно

Пакеты приложений скачиваются и развертываются в общем каталоге, а не в рабочий каталог задачи. Таким образом, если пакет приложения, на который ссылается ссылка, уже находится на вычислительном узле и обновлен, он не будет повторно скачан; Используется существующая копия на вычислительном узле. Если не удается установить указанный пакет приложения, например из-за удаления пакета или из-за сбоя скачивания, задача завершается сбоем.

authentication_token_settings
AuthenticationTokenSettings
Обязательно

Параметры маркера проверки подлинности, который задача может использовать для выполнения операций пакетной службы. Если это свойство задано, пакетная служба предоставляет задаче маркер проверки подлинности, который можно использовать для проверки подлинности операций пакетной службы без необходимости ключа доступа учетной записи. Маркер предоставляется с помощью переменной среды AZ_BATCH_AUTHENTICATION_TOKEN. Операции, которые задача может выполнять с помощью маркера, зависят от параметров. Например, задача может запрашивать разрешения задания для добавления других задач в задание или проверка состояние задания или других задач в задании.

allow_low_priority_node
bool
Обязательно

Может ли задача диспетчера заданий выполняться на точечных или низкоприоритетных вычислительных узлах. Значение по умолчанию — true.

Методы

as_dict

Возвращает диктовку, которая может иметь значение JSONify с помощью json.dump.

При дополнительном использовании можно использовать обратный вызов в качестве параметра:

Ключ — это имя атрибута, используемого в Python. Attr_desc — это диктовка метаданных. В настоящее время содержит тип с типом msrest и key с ключом в кодировке RestAPI. Значение — это текущее значение в этом объекте.

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

См. три примера в этом файле:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Если требуется сериализация XML, можно передать kwargs is_xml=True.

deserialize

Выполните синтаксический анализ str с помощью синтаксиса RestAPI и верните модель.

enable_additional_properties_sending
from_dict

Синтаксический анализ диктовки с помощью заданного средства извлечения ключей возвращает модель.

По умолчанию рекомендуется использовать средства извлечения ключей (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor и last_rest_key_case_insensitive_extractor).

is_xml_model
serialize

Возвращает json, который будет отправлен в Azure из этой модели.

Это псевдоним для as_dict(full_restapi_key_transformer, keep_readonly=False).

Если требуется сериализация XML, можно передать kwargs is_xml=True.

validate

Рекурсивная проверка модели и возврат списка ValidationError.

as_dict

Возвращает диктовку, которая может иметь значение JSONify с помощью json.dump.

При дополнительном использовании можно использовать обратный вызов в качестве параметра:

Ключ — это имя атрибута, используемого в Python. Attr_desc — это диктовка метаданных. В настоящее время содержит тип с типом msrest и key с ключом в кодировке RestAPI. Значение — это текущее значение в этом объекте.

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

См. три примера в этом файле:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Если требуется сериализация XML, можно передать kwargs is_xml=True.

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

Параметры

key_transformer
<xref:function>

Функция преобразователя ключей.

keep_readonly
значение по умолчанию: True

Возвращаемое значение

Объект, совместимый с JSON для диктовки

Возвращаемый тип

deserialize

Выполните синтаксический анализ str с помощью синтаксиса RestAPI и верните модель.

deserialize(data, content_type=None)

Параметры

data
str
Обязательно

Str, использующий структуру RestAPI. JSON по умолчанию.

content_type
str
значение по умолчанию: None

JSON по умолчанию задайте значение application/xml, если XML.

Возвращаемое значение

Экземпляр этой модели

Исключения

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Синтаксический анализ диктовки с помощью заданного средства извлечения ключей возвращает модель.

По умолчанию рекомендуется использовать средства извлечения ключей (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor и last_rest_key_case_insensitive_extractor).

from_dict(data, key_extractors=None, content_type=None)

Параметры

data
dict
Обязательно

Диктовка, использующий структуру RestAPI

content_type
str
значение по умолчанию: None

JSON по умолчанию задайте значение application/xml, если XML.

key_extractors
значение по умолчанию: None

Возвращаемое значение

Экземпляр этой модели

Исключения

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Возвращает json, который будет отправлен в Azure из этой модели.

Это псевдоним для as_dict(full_restapi_key_transformer, keep_readonly=False).

Если требуется сериализация XML, можно передать kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Параметры

keep_readonly
bool
значение по умолчанию: False

Если вы хотите сериализовать атрибуты только для чтения

Возвращаемое значение

Объект, совместимый с JSON для диктовки

Возвращаемый тип

validate

Рекурсивная проверка модели и возврат списка ValidationError.

validate()

Возвращаемое значение

Список ошибок проверки

Возвращаемый тип