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]
- 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. Значение — это текущее значение в этом объекте. Возвращаемая строка будет использоваться для сериализации ключа. Если тип возвращаемого значения является списком, это считается иерархическим результирующим диктом. См. три примера в этом файле:
Если требуется сериализация 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
Возвращаемое значение
Объект, совместимый с JSON для диктовки
Возвращаемый тип
deserialize
Выполните синтаксический анализ str с помощью синтаксиса RestAPI и верните модель.
deserialize(data, content_type=None)
Параметры
- content_type
- str
JSON по умолчанию задайте значение application/xml, если XML.
Возвращаемое значение
Экземпляр этой модели
Исключения
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)
Параметры
- content_type
- str
JSON по умолчанию задайте значение application/xml, если XML.
- key_extractors
Возвращаемое значение
Экземпляр этой модели
Исключения
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
Если вы хотите сериализовать атрибуты только для чтения
Возвращаемое значение
Объект, совместимый с JSON для диктовки
Возвращаемый тип
validate
Рекурсивная проверка модели и возврат списка ValidationError.
validate()
Возвращаемое значение
Список ошибок проверки
Возвращаемый тип
Azure SDK for Python