BatchStartTask interface
当在节点上触发恢复操作时,Batch 将重试任务。 恢复操作的示例包括(但不限于)在重新启动运行不正常的节点或计算节点因主机故障而消失时。 由于恢复操作而进行的重试与 maxTaskRetryCount 无关,并且不计入 maxTaskRetryCount。 即使 maxTaskRetryCount 为 0,也可能发生由于恢复操作而导致的内部重试。 因此,所有任务都应是幂等的。 这意味着任务需要容忍中断和重启,而不会导致任何损坏或重复数据。 长时间运行的任务的最佳做法是使用某种形式的检查点。 在某些情况下,即使计算节点未重新启动,StartTask 也可能重新运行。 应特别注意避免 StartTaskss 从 StartTask 工作目录创建分离进程或安装/启动服务,因为这会阻止 Batch 重新运行 StartTask。
属性
| command |
StartTask 的命令行。 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果要利用这些功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果命令行引用文件路径,则应使用相对路径(相对于任务工作目录),或使用 Batch 提供的环境变量(https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。 |
| container |
运行 StartTask 的容器的设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,并在容器中执行 Task 命令行。 在AZ_BATCH_NODE_ROOT_DIR外部容器中生成的文件可能不会反映在主机磁盘上,这意味着 Batch 文件 API 将无法访问这些文件。 |
| environment |
StartTask 的环境变量设置列表。 |
| max |
可以重试任务的最大次数。 如果 Batch 服务退出代码为非零,则重试任务。 请注意,此值专门控制重试次数。 Batch 服务将尝试一次任务,然后可能会重试到此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试任务。 如果最大重试计数为 -1,Batch 服务将重试任务,但不建议用于启动任务或任何任务。 默认值为 0(无重试)。 |
| resource |
Batch 服务在运行命令行之前将下载到计算节点的文件列表。 资源文件列表的最大大小。 超过最大大小时,请求将失败,响应错误代码将为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 的集合大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。 此元素下列出的文件位于任务的工作目录中。 |
| user |
运行 StartTask 的用户标识。 如果省略,任务将作为任务唯一的非管理用户运行。 |
| wait |
在计划计算节点上的任何任务之前,Batch 服务是否应等待 StartTask 成功完成(即退出代码 0)。 如果 True 且 StartTask 在节点上失败,Batch 服务将重试 StartTask,最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,则 Batch 服务会标记节点不可用,并且不会为其计划任务。 可以通过计算节点状态和故障信息详细信息来检测此条件。 如果为 false,Batch 服务不会等待 StartTask 完成。 在这种情况下,在 StartTask 仍在运行时,其他任务可以开始在计算节点上执行;即使 StartTask 失败,新任务将继续在计算节点上计划。 默认值为 true。 |
属性详细信息
commandLine
StartTask 的命令行。 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果要利用这些功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果命令行引用文件路径,则应使用相对路径(相对于任务工作目录),或使用 Batch 提供的环境变量(https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。
commandLine: string
属性值
string
containerSettings
运行 StartTask 的容器的设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,并在容器中执行 Task 命令行。 在AZ_BATCH_NODE_ROOT_DIR外部容器中生成的文件可能不会反映在主机磁盘上,这意味着 Batch 文件 API 将无法访问这些文件。
containerSettings?: BatchTaskContainerSettings
属性值
environmentSettings
maxTaskRetryCount
可以重试任务的最大次数。 如果 Batch 服务退出代码为非零,则重试任务。 请注意,此值专门控制重试次数。 Batch 服务将尝试一次任务,然后可能会重试到此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试任务。 如果最大重试计数为 -1,Batch 服务将重试任务,但不建议用于启动任务或任何任务。 默认值为 0(无重试)。
maxTaskRetryCount?: number
属性值
number
resourceFiles
Batch 服务在运行命令行之前将下载到计算节点的文件列表。 资源文件列表的最大大小。 超过最大大小时,请求将失败,响应错误代码将为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 的集合大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。 此元素下列出的文件位于任务的工作目录中。
resourceFiles?: ResourceFile[]
属性值
userIdentity
waitForSuccess
在计划计算节点上的任何任务之前,Batch 服务是否应等待 StartTask 成功完成(即退出代码 0)。 如果 True 且 StartTask 在节点上失败,Batch 服务将重试 StartTask,最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,则 Batch 服务会标记节点不可用,并且不会为其计划任务。 可以通过计算节点状态和故障信息详细信息来检测此条件。 如果为 false,Batch 服务不会等待 StartTask 完成。 在这种情况下,在 StartTask 仍在运行时,其他任务可以开始在计算节点上执行;即使 StartTask 失败,新任务将继续在计算节点上计划。 默认值为 true。
waitForSuccess?: boolean
属性值
boolean