单阶段提交重试机制的疑问

阅读次数 5

用的保存接口为 /v3/3rd/files/:file_id/upload。

场景为 我们内部服务返回错误code 41001 (后來改为50001,也是一样的效果)。然后界面上会有这个重试按钮,不提示我自定义的错误。然后点击重试,只要连续多次点重试。wps内部的websocket就开始自动无限重试了。5秒一次重试,而用户并没有在界面上继续点。这里为何会有自动重试。而且是多点几次后的触发,用户只能关闭会话才会中断这个重试。

这个机制好像不是公开的,暂时没有搜到文档。怎么避开这个自动重试,怎么关闭这个自动重试。用户如果要重试 ,他自己会点重试。

再补充一个我们的内部逻辑,是只处理手动保存,自动保存是过滤掉的,不做任何处理

1 Answers

文档存盘的操作是你们系统的行为,假如你想只保存用户手动保存的,可以通过is_manual参数过滤

我有用is_manual过滤的,看我最后一句就是说这个过滤。我想问的是用户后续没有点击重试,为什么会自动重试,websocket的请求每隔5秒 就自动发送保存,发的is_manual为手动

大概率是因为你们接口返回的version没有按照文档递增吧?可以看看是不是这个问题,系统会判断为你们保存失败了 ,所以给你们重试 ,另外,最好接入三阶段方式,单阶段后续不维护了

是保存失败的,是明确返回的失败code的。不是应该用户保存,才保存吗?而不是系统自动