随笔 - 168  文章 - 1  评论 - 1  阅读 - 19万

go 重试机制

package main

import (
"fmt"
"time"
)

var RetryFlag chan bool = make(chan bool)
func main() {
Retry(test,[]int{3,5,10})
}
//重试次数
func Retry(f func()bool,rules[]int) {
fmt.Println("========>>进入重试机制======>")
index := 0
for {
go time.AfterFunc(time.Duration(rules[index])*time.Second, func() {
fmt.Println("========>执行重试方法=========>")
RetryFlag <-f()
})
if <- RetryFlag {
fmt.Println("======>重试成功=======>")
return
}
if index == len(rules) - 1 {
fmt.Println("======>达到最大重试次数=====>")
return
}
index ++
}
}

func test() bool {
return false
}
posted on   paulversion  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示