From 13c5483617223ca6876e31a24deccae6a2d60383 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Thu, 21 Sep 2023 15:24:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20super=20=E5=8C=85=E5=A2=9E=E5=8A=A0=20R?= =?UTF-8?q?etryForever=20=E5=87=BD=E6=95=B0=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=B0=B8=E4=B9=85=E9=87=8D=E8=AF=95=E7=9B=B4=E5=88=B0=E6=88=90?= =?UTF-8?q?=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/super/retry.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/utils/super/retry.go b/utils/super/retry.go index 17f5d88..db66b32 100644 --- a/utils/super/retry.go +++ b/utils/super/retry.go @@ -30,3 +30,14 @@ func RetryAsync(count int, interval time.Duration, f func() error, callback func HandleV(err, callback) }() } + +// RetryForever 根据提供的 interval 时间间隔尝试执行 f 函数,如果 f 函数返回错误,则在 interval 后重试,直到成功 +func RetryForever(interval time.Duration, f func() error) { + var err error + for { + if err = f(); err == nil { + return + } + time.Sleep(interval) + } +}