混合应用桥接调用出现超时重试时如何避免重复执行与级联拥塞
简答题困难575 次浏览
参考答案与解析
# 核心结论
混合应用桥接调用超时只表示调用方没有在截止时间内收到结果,并不等于原生方法没有执行。要避免重复副作用和级联拥塞,需要把桥接设计成明确协议:每个请求具有唯一调用标识、业务幂等键、创建时间、截止时间、方法版本和可取消性;原生侧维护去重与状态查询;调用队列必须有容量、优先级和背压;重试采用有上限的退避策略,并且不能在脚本层、原生层和服务端分别独立重试。
# 底层机制
一次桥接调用会经历脚本对象构造、序列化、容器调度、线程切换、原生业务执行、结果序列化和回调投递。任一阶段排队都可能造成超时。例如原生已经完成下单,但结果回调因主线程繁忙而延迟,此时直接重试会重复执行。协议应将状态至少区分为未接收、已接收、执行中、已
