你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
JobPreparationTask 类
在任何给定计算节点上作业的任何任务之前运行的作业准备任务。
可以使用作业准备来准备节点以运行作业的任务。 在作业准备中通常执行的活动包括:下载作业中的所有任务使用的通用资源文件。 作业准备任务可以将这些常见资源文件下载到节点上的共享位置。 (AZ_BATCH_NODE_ROOT_DIRshared) ,或在节点上启动本地服务,以便该作业的所有任务都可以与其通信。 如果作业准备任务失败 (即,在退出之前用完其重试计数,退出代码为 0) ,Batch 将不会在节点上运行此作业的任务。 在重置映像之前,计算节点仍然没有资格运行此作业的任务。 计算节点保持活动状态,可用于其他作业。 作业准备任务可以在同一节点上多次运行。 因此,应编写作业准备任务来处理重新执行。 如果重启节点,则作业准备任务在计划作业的任何其他任务之前,在计算节点上再次运行,如果 rerunOnNodeRebootAfterSuccess 为 true,或者作业准备任务以前未完成。 如果节点重置映像,则会在计划作业的任何任务之前再次运行作业准备任务。 在节点上触发恢复操作时,Batch 将重试任务。 恢复操作的示例包括 (但不限于在重新启动不正常的节点或计算节点因主机故障而消失时) 。 由于恢复操作而导致的重试独立于 ,并且不计入 maxTaskRetryCount。 即使 maxTaskRetryCount 为 0,也可能由于恢复操作而发生内部重试。 因此,所有任务都应是幂等的。 这意味着任务需要容忍中断和重启,而不会导致任何损坏或重复数据。 长时间运行的任务的最佳做法是使用某种形式的检查点。
必须填充所有必需的参数才能发送到 Azure。
- 继承
-
JobPreparationTask
构造函数
JobPreparationTask(*, command_line: str, id: str = None, container_settings=None, resource_files=None, environment_settings=None, constraints=None, wait_for_success: bool = None, user_identity=None, rerun_on_node_reboot_after_success: bool = None, **kwargs)
参数
- id
- str
ID 可以包含字母数字字符(包括连字符和下划线)的任意组合,并且不能包含超过 64 个字符。 如果未指定此属性,Batch 服务将分配默认值“jobpreparation”。 作业中的其他任务不能具有与作业准备任务相同的 ID。 如果尝试提交 ID 相同的任务,Batch 服务会拒绝该请求,错误代码为 TaskIdSameAsJobPreparationTask;如果直接调用 REST API,则 HTTP 状态代码为 409 (冲突) 。
- command_line
- str
必需。 命令行不在 shell 下运行,因此无法利用 shell 功能,例如环境变量扩展。 如果要利用此类功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果命令行引用文件路径,则应使用相对于 Task 工作目录) (相对路径,或使用 Batch 提供的环境变量 (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) 。
- container_settings
- TaskContainerSettings
运行作业准备任务的容器的设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR (节点上 Azure Batch) 目录的根目录以递归方式映射到容器中,所有 Task 环境变量都映射到容器中,并在容器中执行 Task 命令行。 AZ_BATCH_NODE_ROOT_DIR 之外的容器中生成的文件可能不会反映在主机磁盘上,这意味着 Batch 文件 API 无法访问这些文件。
- resource_files
- list[ResourceFile]
此元素下列出的文件位于任务的工作目录中。 资源文件列表有一个最大大小。 超过最大大小时,请求将失败,响应错误代码为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 集合的大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。
- environment_settings
- list[EnvironmentSetting]
- wait_for_success
- bool
在计算节点上计划作业的任何其他任务之前,Batch 服务是否应等待作业准备任务成功完成。 如果作业准备任务退出并退出代码为 0,则作业准备任务已成功完成。 如果为 true,并且节点上的作业准备任务失败,Batch 服务将重试作业准备任务,最大重试次数 () 约束元素中指定的最大重试次数。 如果所有重试后任务仍未成功完成,Batch 服务将不会将作业的任务安排到节点。 该节点保持活动状态,并有资格运行其他作业的任务。 如果为 false,则 Batch 服务不会等待作业准备任务完成。 在这种情况下,作业的其他任务可以在作业准备任务仍在运行时开始在计算节点上执行;即使作业准备任务失败,新任务将继续在计算节点上进行计划。 默认值为 true。
- user_identity
- UserIdentity
运行作业准备任务时所依据的用户标识。 如果省略该任务,则任务以 Windows 计算节点上的任务所特有的非管理用户或 Linux 计算节点上的池唯一的非管理用户身份运行。
- rerun_on_node_reboot_after_success
- bool
批处理服务是否应在计算节点重新启动后重新运行作业准备任务。 如果计算节点重置映像,或者作业准备任务未完成 ((例如,由于任务在运行) 时重新启动),则始终重新运行作业准备任务。 因此,应始终编写作业准备任务,以便其幂等且在多次运行时正常运行。 默认值为 true。
方法
as_dict |
使用 json.dump 返回可以是 JSONify 的 dict。 高级用法可以选择使用回调作为参数: Key 是 Python 中使用的属性名称。 Attr_desc是元数据的一个听写。 当前包含具有 msrest 类型的“type”和包含 RestAPI 编码密钥的“key”。 Value 是此 对象中的当前值。 返回的字符串将用于序列化密钥。 如果返回类型是列表,则这被视为分层结果 dict。 请参阅此文件中的三个示例:
如果需要 XML 序列化,可以传递 kwargs is_xml=True。 |
deserialize |
使用 RestAPI 语法分析 str 并返回模型。 |
enable_additional_properties_sending | |
from_dict |
使用给定的键提取程序分析 dict 会返回模型。 默认情况下,请考虑密钥提取程序 (rest_key_case_insensitive_extractor、attribute_key_case_insensitive_extractor和last_rest_key_case_insensitive_extractor) |
is_xml_model | |
serialize |
返回将从此模型发送到 Azure 的 JSON。 这是 as_dict (full_restapi_key_transformer 的别名 ,keep_readonly=False) 。 如果需要 XML 序列化,可以传递 kwargs is_xml=True。 |
validate |
以递归方式验证此模型,并返回 ValidationError 列表。 |
as_dict
使用 json.dump 返回可以是 JSONify 的 dict。
高级用法可以选择使用回调作为参数:
Key 是 Python 中使用的属性名称。 Attr_desc是元数据的一个听写。 当前包含具有 msrest 类型的“type”和包含 RestAPI 编码密钥的“key”。 Value 是此 对象中的当前值。
返回的字符串将用于序列化密钥。 如果返回类型是列表,则这被视为分层结果 dict。
请参阅此文件中的三个示例:
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
返回
与 dict JSON 兼容的对象
返回类型
deserialize
使用 RestAPI 语法分析 str 并返回模型。
deserialize(data, content_type=None)
参数
返回
此模型的实例
例外
enable_additional_properties_sending
enable_additional_properties_sending()
from_dict
使用给定的键提取程序分析 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)
参数
- key_extractors
返回
此模型的实例
例外
is_xml_model
is_xml_model()
serialize
返回将从此模型发送到 Azure 的 JSON。
这是 as_dict (full_restapi_key_transformer 的别名 ,keep_readonly=False) 。
如果需要 XML 序列化,可以传递 kwargs is_xml=True。
serialize(keep_readonly=False, **kwargs)
参数
返回
与 dict JSON 兼容的对象