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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions