BatchTask interface
当在节点上触发恢复操作时,Batch 将重试任务。 恢复操作的示例包括(但不限于)在重新启动运行不正常的节点或计算节点因主机故障而消失时。 由于恢复操作而进行的重试与 maxTaskRetryCount 无关,并且不计入 maxTaskRetryCount。 即使 maxTaskRetryCount 为 0,也可能发生由于恢复操作而导致的内部重试。 因此,所有任务都应是幂等的。 这意味着任务需要容忍中断和重启,而不会导致任何损坏或重复数据。 长时间运行的任务的最佳做法是使用某种形式的检查点。
属性
| affinity |
一个局部性提示,批处理服务可以用来选择一个计算节点来启动新任务。 |
| application |
批处理服务在运行命令行前将部署到计算节点的包列表。 应用包是下载并部署到共享目录,而不是任务工作目录。 因此,如果引用包已经在节点上且是最新的,则不会重新下载;使用计算节点上的现有副本。 如果引用的包无法安装,例如因为包被删除或下载失败,任务即失败。 |
| command |
任务的命令行。 对于多实例任务,命令行作为主任务执行,前提是主任务和所有子任务都完成协调命令行的执行。 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果你想利用这些功能,应该在命令行调用 shell,比如在 Windows 中使用“cmd /c MyCommand”,在 Linux 中使用“/bin/sh -c MyCommand”。 如果命令行引用文件路径,则应使用相对路径(相对于任务工作目录),或使用 Batch 提供的环境变量(https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。 |
| constraints | 适用于该任务的执行约束。 |
| container |
任务运行容器的设置。 如果执行该任务的池设置了containerConfiguration,也必须设置。 如果执行该任务的池没有设置 containerConfiguration ,那么必须不设置。 当指定时,所有位于AZ_BATCH_NODE_ROOT_DIR(节点上Azure Batch目录根)下方的所有目录递归映射到容器中,所有任务环境变量映射到容器中,任务命令行在容器中执行。 容器中AZ_BATCH_NODE_ROOT_DIR外生成的文件可能不会反映到主机磁盘,这意味着批处理文件API无法访问这些文件。 |
| creation |
任务的创建时间。 |
| depends |
这项任务所依赖的任务。 该任务在所有依赖任务成功完成后才会被调度。 如果这些任务中的任何一个失败并用尽重试次数,该任务将永远不会被安排。 |
| display |
任务的显示名称。 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。 |
| environment |
任务的环境变量设置列表。 |
| e |
任务的ETag。 这是一个不透明的字符串。 你可以用它检测任务在请求之间是否发生了变化。 特别是,在更新任务时,你可以通过ETag,指定只有在没有其他人修改该任务时,你的更改才会生效。 |
| execution |
关于任务执行的信息。 |
| exit |
任务完成时批处理服务应如何响应。 |
| id | 一个唯一标识任务的字符串。 ID 可以包含字母数字字符(包括连字符和下划线)的任意组合,并且不能包含超过 64 个字符。 |
| last |
任务的最后修正时间。 |
| multi |
一个表示任务是多实例任务的对象,包含如何运行多实例任务的信息。 |
| node |
关于任务运行的计算节点的信息。 |
| output |
批处理服务运行命令行后,将从计算节点上传的文件列表。 对于多实例任务,文件只会从执行主任务的计算节点上传。 |
| previous |
任务的前一阶段。 如果任务处于初始活跃状态,则该属性不被设置。 |
| previous |
任务进入之前状态的时间点。 如果任务处于初始活跃状态,则该属性不被设置。 |
| required |
任务运行所需的调度时隙数。 默认值为 1。 只有当节点有足够的空闲调度槽时,任务才能被调度到计算节点上运行。 对于多实例任务,这必须是1. |
| resource |
Batch 服务在运行命令行之前将下载到计算节点的文件列表。 对于多实例任务,资源文件只会下载到执行主任务的计算节点。 资源文件列表的最大大小。 超过最大大小时,请求将失败,响应错误代码将为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 的集合大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。 |
| state | 任务的现状。 |
| state |
任务进入当前状态的时间。 |
| task |
任务的资源使用统计数据。 |
| url | 任务的网址。 |
| user |
任务运行的用户身份。 如果省略,任务将作为任务独一无二的非管理员用户运行。 |
属性详细信息
affinityInfo
applicationPackageReferences
批处理服务在运行命令行前将部署到计算节点的包列表。 应用包是下载并部署到共享目录,而不是任务工作目录。 因此,如果引用包已经在节点上且是最新的,则不会重新下载;使用计算节点上的现有副本。 如果引用的包无法安装,例如因为包被删除或下载失败,任务即失败。
applicationPackageReferences?: BatchApplicationPackageReference[]
属性值
commandLine
任务的命令行。 对于多实例任务,命令行作为主任务执行,前提是主任务和所有子任务都完成协调命令行的执行。 命令行未在 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
constraints
containerSettings
任务运行容器的设置。 如果执行该任务的池设置了containerConfiguration,也必须设置。 如果执行该任务的池没有设置 containerConfiguration ,那么必须不设置。 当指定时,所有位于AZ_BATCH_NODE_ROOT_DIR(节点上Azure Batch目录根)下方的所有目录递归映射到容器中,所有任务环境变量映射到容器中,任务命令行在容器中执行。 容器中AZ_BATCH_NODE_ROOT_DIR外生成的文件可能不会反映到主机磁盘,这意味着批处理文件API无法访问这些文件。
containerSettings?: BatchTaskContainerSettings
属性值
creationTime
任务的创建时间。
creationTime: Date
属性值
Date
dependsOn
这项任务所依赖的任务。 该任务在所有依赖任务成功完成后才会被调度。 如果这些任务中的任何一个失败并用尽重试次数,该任务将永远不会被安排。
dependsOn?: BatchTaskDependencies
属性值
displayName
任务的显示名称。 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。
displayName?: string
属性值
string
environmentSettings
eTag
任务的ETag。 这是一个不透明的字符串。 你可以用它检测任务在请求之间是否发生了变化。 特别是,在更新任务时,你可以通过ETag,指定只有在没有其他人修改该任务时,你的更改才会生效。
eTag: string
属性值
string
executionInfo
exitConditions
id
一个唯一标识任务的字符串。 ID 可以包含字母数字字符(包括连字符和下划线)的任意组合,并且不能包含超过 64 个字符。
id: string
属性值
string
lastModified
任务的最后修正时间。
lastModified: Date
属性值
Date
multiInstanceSettings
一个表示任务是多实例任务的对象,包含如何运行多实例任务的信息。
multiInstanceSettings?: MultiInstanceSettings
属性值
nodeInfo
outputFiles
previousState
previousStateTransitionTime
任务进入之前状态的时间点。 如果任务处于初始活跃状态,则该属性不被设置。
previousStateTransitionTime?: Date
属性值
Date
requiredSlots
任务运行所需的调度时隙数。 默认值为 1。 只有当节点有足够的空闲调度槽时,任务才能被调度到计算节点上运行。 对于多实例任务,这必须是1.
requiredSlots?: number
属性值
number
resourceFiles
Batch 服务在运行命令行之前将下载到计算节点的文件列表。 对于多实例任务,资源文件只会下载到执行主任务的计算节点。 资源文件列表的最大大小。 超过最大大小时,请求将失败,响应错误代码将为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 的集合大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。
resourceFiles?: ResourceFile[]
属性值
state
stateTransitionTime
任务进入当前状态的时间。
stateTransitionTime: Date
属性值
Date
taskStatistics
url
任务的网址。
url: string
属性值
string