先这样答
先判断失败分支的结果是否是汇总必需。如果不是必需项,汇总节点可以使用其他成功分支的结果继续汇总。失败项要明确标注缺失,也要写清失败原因。需要时,再对失败分支重试补充。
如果失败分支属于必需项,就不能把当前结果当成完整结果输出。汇总节点应先在预算内重试失败分支。重试后仍然失败,就输出降级结果,并明确说明结果不完整。
核心是让汇总结果反映真实状态。非必需分支可以缺失,但缺失不能被隐藏。必需分支不能被静默跳过,更不能让读者误以为所有并行分支都已经成功。这样处理能同时保留已有成功结果,也能说明当前结果的边界。
面试官会怎么追问
-
「你怎么判断一个失败分支是不是汇总必需?」
看这个分支的结果是否是最终汇总成立所必需。如果缺少它,汇总仍然可以成立,就按非必需项处理。如果缺少它会让结果不完整,就按必需项处理。 -
「非必需分支失败后,你会直接结束流程吗?」
可以先用其余成功结果完成汇总,但必须标注失败项缺失和失败原因。若确实需要补齐,再按需重试失败分支。不能把失败项直接丢掉并假装没有发生。 -
「必需分支重试后还是失败,最终要返回什么?」
不能输出看起来完整的结果。预算内重试仍失败后,应返回降级结果,并明确标注结果不完整。这样调用方能知道汇总缺少必需分支。
回答的坑
- 把失败分支静默丢弃,再把其余结果包装成完整汇总。
- 只说“失败就重试”,却不区分分支是否是汇总必需。
同系列的题
—— 本题完 ——