任务重新排队事件

当批处理重新排队任务以便重新调度时,会触发该事件。

任务可以在服务操作后重新排队,如节点移除、重新排队的作业禁用操作,或其他服务驱动的恢复场景。

当重新排队的任务再次被调度时,Batch 会为后续尝试发出新的 任务启动 事件。

以下示例展示了任务重新排队事件的主体。

{
    "jobId": "myJob",
    "id": "myTask",
    "taskType": "User",
    "systemTaskVersion": 3,
    "requiredSlots": 1,
    "nodeInfo": {
        "poolId": "pool-001",
        "nodeId": "tvm-257509324_1-20160908t162728z"
    },
    "multiInstanceSettings": {
        "numberOfInstances": 1
    },
    "constraints": {
        "maxTaskRetryCount": 2
    },
    "executionInfo": {
        "startTime": "2016-09-08T16:32:23.799Z",
        "endTime": "2016-09-08T16:34:00.666Z",
        "exitCode": 11,
        "retryCount": 0,
        "requeueCount": 1,
        "result": "failure",
        "schedulingError": {
            "category": "UserError",
            "code": "BadCommandType",
            "message": "Task has invalid command",
            "details": [
                {
                    "name": "Reason",
                    "value": "Access denied"
                }
            ]
        }
    }
}

exitCoderesult, 和 schedulingError 只有在批处理中对重新排队任务有执行错误信息时才填充。

元素名称 类型 Notes
jobId String 包含任务的作业的 ID。
id String 任务的 ID。
taskType String 任务的类型。 这要么 JobManager 表示这是作业管理器任务,要么 User 说明不是作业管理器任务。 不会针对作业准备任务、作业发布任务或启动任务发出此事件。 关于这些任务,请参见 特殊任务事件
systemTaskVersion Int32 任务的内部重试计数器。 在内部,Batch 服务可以重试任务来考虑暂时性问题。 这些问题可能包括内部计划错误或尝试从处于错误状态的计算节点中恢复。
requiredSlots Int32 运行任务所需的槽位。
nodeInfo 复杂类型 包含任务最近运行的计算节点信息。
multiInstanceSettings 复杂类型 指定该任务是需要多个计算节点的多实例任务。 有关详细信息,请参阅multiInstanceSettings
constraints 复杂类型 应用于此任务的执行约束。
executionInfo 复杂类型 包含任务重新排队时捕获的执行状态信息。

nodeInfo

元素名称 类型 Notes
poolId String 最近任务运行的池子编号。
nodeId String 任务最近运行的节点ID。

multiInstanceSettings

元素名称 类型 Notes
numberOfInstances Int32 任务所需的计算节点数。

限制条件

元素名称 类型 Notes
maxTaskRetryCount Int32 重试任务的最大次数。 如果 Batch 服务退出代码为非零,则重试任务。

此值专门控制重试次数。 Batch 服务尝试一次任务,然后可能会重试到此限制。 例如,如果最大重试计数为 3,Batch 将尝试最多四次任务(一次初始尝试和三次重试)。

如果最大重试计数为 0,Batch 服务不会重试任务。

如果最大重试计数为 -1,Batch 服务会重试没有限制的任务。

默认值为 0(无重试)。

executionInfo

元素名称 类型 Notes
startTime DateTime 任务最近开始运行的时间,之后被重新排队。 如果任务尚未开始,这个区域可能会被省略。
endTime DateTime 任务最近一次停止运行的时间,在重新排队之前。 如果任务尚未开始,这个区域可能会被省略。
exitCode Int32 最近一次任务执行的退出代码,而Batch有一条任务需要报告。 否则,该字段被省略。
retryCount Int32 Batch 服务重试任务的次数。 如果任务以非零的退出代码退出,且在指定的最大任务重试次数内,任务将重新尝试。
requeueCount Int32 批处理服务重新排队该任务的次数。 在当前已发射的有效载荷中,该字段反映了该任务当前服务的重新排队计数器。
result String 当任务可用时,服务定义的结果字符串。
schedulingError 复杂类型 包含关于报告错误的详细信息(如有)。

scheduleError

元素名称 类型 Notes
category String 错误类别,例如 UserError
code String 错误代码,例如 BadCommandType
message String 错误消息。
details Array 一份包含名称-值对的列表,提供关于错误的更多细节。 如果没有额外的细节值,则数组为空。

详细信息

元素名称 类型 Notes
name String 细节名称。
value String 细节价值。