#error #recoverable #up #wait #fatal #repeatedly #numbers

app retryable-result

在出现太多或致命错误之前,反复尝试一些可恢复的错误

1 个不稳定版本

0.1.0 2024年7月21日

#1 in #repeatedly

Download history 121/week @ 2024-07-20 20/week @ 2024-07-27

每月141次下载

MIT 协议

12KB
188

可重试结果

三种枚举类型,分别表示成功值、可恢复错误和不可恢复错误。

对于出现大量可恢复错误的情况,可恢复错误必须有一种方式转换为不可恢复错误。

可恢复错误还必须有一种方式来确定在给定之前收到的可恢复错误信息和时间的情况下等待多长时间。

  • 策略可能是看到大量可恢复错误消息,表明某个进程太忙,它建议在再次尝试之前等待两倍的时间,以便给瓶颈时间清理,直到某个时间阈值。
  • 策略可能是无论之前看到了什么,都等待特定的时间,直到达到最大次数时,它说 None 以表示放弃。
  • 不应有一系列始终产生等待时间的可恢复错误。在某个时候,它应该返回 None 以表示放弃。

反复尝试

我们有一个异步函数,除了良好的结果外,还可以返回可恢复和不可恢复错误。

我们还有另一个异步函数,它反复尝试此函数,直到以下情况之一:

  • 成功
  • 有足够的可恢复错误,Retryable 上的 wait_time 指示是时候放弃
  • 不可恢复错误

还有记录器。无论最终结果是错误还是由于特定调用中的致命错误或太多的可恢复错误,所有错误信息都传递给记录器。

依赖关系

~7–18MB
~247K SLoC