一、概述

TaskResultGetter 用于对序列化的 Task 执行结果进行反序列化,以得到 Task 执行结果。TaskResultGetter 也可远程获取 Task 执行结果。

https://weread.qq.com/web/reader/10c326305afa9610cf5f1eckc9f326d018c9f0f895fb5e4?

https://weread.qq.com/web/reader/0c832fb05e12e40c8ca6190kd2d32c50249d2ddea18fb39

二、实现

三、处理 Task

3.1. 处理成功 Task

3.2. 处理失败 Task

$TaskResultGetter.enqueueFailedTask()$ 方法用于处理执行失败的 Task 的执行结果。

$enqueueFailedTask()$ 方法向 $getTaskResultExecutor$ 提交 Task 执行结果的任务:

  1. 对执行结果反序列化,得到类型为 TaskFailedReason 的失败原因。
  2. 调用 $TaskSchedulerImpl.handleFailedTask()$ 方法将失败的 Task 重新放入待处理的 Task 列表,并通知DAGScheduler 重新调度。