alibaba/AGEIPort

关于ImportMainTaskWorker.doReduce()方法中onFinished(context)方法的调用逻辑的问题

Closed this issue · 3 comments

问题:只要主任务不抛异常onFinished(context)就会执行,MainTask就会被设置finish状态。并没有判断是否有子任务执行失败的情况。
image

上图的MainTask.state=error(子任务执行失败导致),但是还是执行了onFinished(context)方法。

我理解的 onFinished 表示的是此次导入/导入任务是否完成,成功/失败是状态,并不是只有成功才算完成。

我理解的 onFinished 表示的是此次导入/导入任务是否完成,成功/失败是状态,并不是只有成功才算完成。
代码看起来好像有矛盾,按照TaskProgressMonitorImpl.java子任务全部执行完,不管成功失败都执行合并操作。但是MainTaskWorker.java代码中是将子任务总数赋值给了子任务成功总数,根据monitor中代码来看即使子任务有error状态也是可以执行到这里的。
此外根据 CommonStage.java代码中定义,应该final表示的才是完成状态。这是我的疑问,感谢你的回复