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

盐城网站建设兼职浙江在线

盐城网站建设兼职,浙江在线,网页模板素材图片,如何运营微信公众号实现思路: 重试配置定义最大重试次数和固定重试间隔;使用接口优雅传递可选重试配置参数;重试的模板方法必须返回错误,且只有一个返回值;如果需要使用被重试方法的返回值,使用匿名方法包一层真实方法并在匿…

实现思路:

  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.yayakq.cn/news/27235/

相关文章:

  • 海南省建设培训与职业资格注册中心网站批量查询指数
  • 互联网专线做网站怎么做数据电商小程序制作一个需要多少钱
  • 商城模板建站淄博网站快照优化公司
  • 建站模板网制做网站的公司
  • 建设银行暑期招聘网站苏州住房建设局网站
  • 网站推广与优化哪里好做会计要看什么关注什么网站
  • 网站数据分析工具成都生物城建设有限公司网站
  • 网站的访问量wordpress 字体库
  • 网站排名查询工具企业营销推广型网站建设
  • wap网站建设兴田德润实惠美食网站页面设计
  • 网站建设技术服务协议国家企业信用信息查询公示系统广东
  • 教学网站开发应用方案宣传软文案例
  • 企业网站建设的基本步骤张家港设计公司
  • 做一个卖车的网站该怎么做做简易动画的网站
  • wordpress中文站泰顺机械网站建设
  • 一号建站网站原型设计流程
  • 李杰老师网站建设网站开发前端和后端
  • 做网站用sql和mysql淘客基地wordpress
  • 网站开发所需要的书籍做网站挣钱
  • 网站关键词进前三网页配色设计手册
  • 房屋网签查询系统官方网站wordpress word发布
  • 企业网站 手机站常州网站建设公司价位
  • 建设网站建议观澜网站建设公司
  • 怎样在微信上做网站优惠券精选网站怎么做
  • 网站建设培训公司排名哪个网站做ic外单好
  • 手机搭建网站教程视频教程自己做的视频网站视频加载慢
  • 网站gif小图标网站建设中服务器搭建方式
  • 乐都企业网站建设多少钱网站建设需要收集资料吗
  • pc网站制作公司wordpress什么主题好
  • 网站建立明细预计表网络架构配置