当前位置: 首页 > news >正文

在游戏网站做中介合法泰安seo

在游戏网站做中介合法,泰安seo,wordpress论坛用户,出国劳务信息实现思路: 重试配置定义最大重试次数和固定重试间隔;使用接口优雅传递可选重试配置参数;重试的模板方法必须返回错误,且只有一个返回值;如果需要使用被重试方法的返回值,使用匿名方法包一层真实方法并在匿…

实现思路:

  1. 重试配置定义最大重试次数和固定重试间隔;
  2. 使用接口优雅传递可选重试配置参数;
  3. 重试的模板方法必须返回错误,且只有一个返回值;
  4. 如果需要使用被重试方法的返回值,使用匿名方法包一层真实方法并在匿名方法中赋值真实方法的返回值;
  5. 真实方法返回error时会进行重试;
    重试配置
// 重试配置结构
type Config struct  {MaxRetryTime int // 最大重试次数Interval 	  int // 固定重试间隔
}// 构造默认重试配置
func NewDefaultConfig() *Config {return &Config {MaxRetryTime : DefaultMaxRetryTime,Interval : DefaultInterval,}
}// 默认重试配置常量
const (DefaultMaxRetryTime = 3 // 默认最大重试次数DefaultInterval     = 1 // 默认重试间隔(单位秒)
)// 定义重试参数接口
type Option func(*Config)// 设定重试参数方法-超时时间
func MaxRetryTime(maxRetryTime int) Option {return func(config *Config) {config.MaxRetryTime = maxRetryTime}
}// 设定重试参数方法-重试间隔
func Interval(interval int) Option {return func(config *Config) {config.Interval = interval}
}

通用重试方法

// 重试模板方法定义,必须返回错误,且只有一个返回值
type RetryFunc func() error// 接受重试方法和可选重试参数(重试次数、重试间隔)
func DO(f RetryFunc, options...Option) error{// 构造默认重试配置config := NewDefaultConfig()for i :=range options {options[i](config)}// 接受方法返回错误var err errorfor i := 0;i < config.MaxRetryTime ;i++ { err = f()fmt.Printf("第%d次执行 结果%v\n",i+1, err)if err == nil {// 执行成功返回return nil}// 发生错误,延迟重试间隔time.Sleep(time.Duration(config.Interval) * time.Second)}return err
}

测试方法

// 获取商和余数
func GetShangAndYushu(a int, b int) (int, int, error) {val1 := a/bval2 := a %breturn val1, val2, errors.New("手动触发错误") // return val1, val2, nil
}

使用示例

func main() {var shang int // 商var yushu int // 余数var err error DO(func () error {shang, yushu, err = GetShangAndYushu(2,1)return err}, MaxRetryTime(10), Interval(2)) fmt.Printf("最终结果err=%v,shang=%d,yushu=%d\n", err,shang,yushu)
}

结果展示

第1次执行 结果手动触发错误
第2次执行 结果手动触发错误
第3次执行 结果手动触发错误
第4次执行 结果手动触发错误
第5次执行 结果手动触发错误
第6次执行 结果手动触发错误
第7次执行 结果手动触发错误
^@第8次执行 结果手动触发错误
第9次执行 结果手动触发错误
第10次执行 结果手动触发错误
最终结果err=手动触发错误,shang=2,yushu=0
http://www.tj-hxxt.cn/news/107187.html

相关文章:

  • 做情趣用品网站需要哪些资质郑州网站推广方案
  • 毕业设计做健身房网站的意义二十个优化
  • 网站访问量js运营商推广5g技术
  • 网站开发公司长春seo与网络推广的区别和联系
  • 网站 带数据怎么创建网站
  • 科技有限公司英文seo引擎搜索网站关键词
  • 网站怎么做子页推广员网站
  • wordpress个人空间郑州网站优化排名
  • psd网站排行榜百度网站域名
  • 网站建设费用价格云搜索app官网
  • 天津网站建设公司排名高端网站建设公司排名
  • 江阴安泰物流有限公司网站谁做的发布新闻
  • 江西省建设厅网站官网怎么做网络营销平台
  • 微信制作网站开发推广的渠道和方法有哪些
  • 怎么做网站页面网站推广排名教程
  • 网站开发模式b s市场调研报告ppt
  • 江门网站设计华企立方广告联盟
  • 网站源码php怎样注册自己的网站
  • 成都网站建设搭建互联网最赚钱的行业
  • 滴道网站建设灰色关键词代发可测试
  • 哪个网站建设好宁波seo企业推广
  • 企业网站修改流程沈阳网站关键字优化
  • 一级a做爰片试看 免费网站济南疫情最新情况
  • 单位政府网站建设和维护互联网推广项目
  • 深圳二维码网站建设seo诊断服务
  • 建设部网站打不开windows优化大师自动下载
  • java做网站要哪些软件优化关键词排名
  • 红番茄 网站点评童程童美少儿编程怎样收费
  • 网站外包开发 代码的版权问题高清视频网络服务器
  • 网站建设公司彩铃电商运营培训机构哪家好