Skip to content

Lark 文档导出任务失败缺少重试策略 #2

@rabbull

Description

@rabbull

#1 中对请求 Lark Open API 的函数都增加了重试,然而并没有完整的覆盖所有的失败情况:

如果一个文档的导出任务成功创建了,但是 Lark [执行这个任务的时候失败了,那么用来查询导出任务结果的接口 将会返回一个错误码。此时代码wait_task 函数会抛出一个 LarkOpenApiError 异常。重复查询这个任务的结果也会再次抛出异常,因为 Lark 不会自动重试失败的任务。当前的重试策略是对任何抛出了 LarkOpenApiError 异常的调用都进行指数退行重试。

这里有两个问题:

  1. 文档导出任务最终失败的情况下抛出 LarkOpenApiError 异常合理吗?是不是应该用其他类型的异常?
  2. 对于最终失败的情况,需要重新创建新的文档导出任务,对于异步过程来说这个才是有效的重试。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions