StartTask Класс

Задача, которая выполняется при присоединении узла к пулу в службе пакетная служба Azure либо при перезагрузке или повторном создании образа вычислительного узла.

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

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

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

Конструктор

StartTask(*, command_line: str, container_settings=None, resource_files=None, environment_settings=None, user_identity=None, max_task_retry_count: int = None, wait_for_success: bool = None, **kwargs)

Параметры

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
Обязательно

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

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

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

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

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

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

Максимальное количество повторных попыток задачи. Пакетная служба повторяет задачу, если ее код выхода не равен нулю. Обратите внимание, что это значение определяет количество повторных попыток. Пакетная служба попытается выполнить задачу один раз, а затем может повторить попытку до этого предела. Например, если максимальное число повторных попыток равно 3, пакетная служба пытается выполнить задачу до 4 раз (одна начальная попытка и 3 повторных попытки). Если максимальное число повторных попыток равно 0, пакетная служба не повторяет задачу. Если максимальное число повторных попыток равно -1, пакетная служба повторяет задачу без ограничений, однако это не рекомендуется для задачи запуска или любой задачи. Значение по умолчанию — 0 (без повторных попыток).

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

Указывает, должна ли пакетная служба ожидать успешного завершения StartTask (т. е. выхода с кодом выхода 0) перед планированием задач на вычислительном узле. Если значение равно true и startTask завершается сбоем на узле, пакетная служба повторяет операцию StartTask до максимального числа повторных попыток (maxTaskRetryCount). Если задача по-прежнему не была успешно завершена после всех повторных попыток, пакетная служба помечает узел как непригодный для использования и не будет планировать для него задачи. Это условие можно обнаружить с помощью сведений о состоянии вычислительного узла и сведений о сбое. Если значение равно false, пакетная служба не будет ждать завершения startTask. В этом случае другие задачи могут начать выполнение на вычислительном узле, пока еще выполняется StartTask. и даже в случае сбоя StartTask новые задачи будут по-прежнему планироваться на вычислительном узле. Значение по умолчанию — 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
Обязательно

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

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

JSON по умолчанию задайте значение application/xml if 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 if 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()

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

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

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