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

php公司网站企业网站建设可行性分析 技能训练

php公司网站,企业网站建设可行性分析 技能训练,怎样在网上卖产品,12306 网站谁做的实现思路: 重试配置定义最大重试次数和固定重试间隔;使用接口优雅传递可选重试配置参数;重试的模板方法必须返回错误,且只有一个返回值;如果需要使用被重试方法的返回值,使用匿名方法包一层真实方法并在匿…

实现思路:

  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/800710/

相关文章:

  • 视频网站主持人电商推广工作内容
  • 网站名称如何设置林州建筑网
  • 做网站如何避免侵权wordpress 跳转 微信
  • 电子商务网站开发与设计百度推广要企业自己做网站吗
  • 模板手机网站建设宝宝投票网站怎么做
  • 乔拓云建站平台网页设计与制作考试
  • 学校网站建设开题报告书公司做网站宣传怎么做
  • 一般的网站开发语言用什么百度高级搜索页面
  • 上海企业建站工具常用网站如何在桌面做快捷方式
  • 网站建设与百度推广种子搜索器
  • 做购物商城网站设计参考文献 教学网站建设
  • 建设银行手机短信网站怎么开通怎么免费建立网店网站
  • 网站制作方案在哪找企业网站开发模板
  • 如何做网站直播入口搭建跨境电商平台
  • 镇江网站制作公司重庆商城网站建设地址
  • 外贸网站谷歌推广手机app软件开发需要多少钱
  • 江西天亿建设有限公司网站如何建设自己企业网站
  • 导航网站 wordpress做公益网站怎么赚钱
  • 贵州省住房和城乡建设厅网站打不开太仓网站优化
  • 怎么知道自己网站的权重iis创建网站
  • 站长工具端口扫描视频当背景图片 网站开发
  • 做网站的知识京津冀协同发展心得体会
  • 一一影视网站源码网站建设质量保证
  • 网站建设策划方案pptwordpress做商城网站吗
  • 宁夏建设工程招投标管理中心网站武夷山网站定制
  • 新乡做网站推广手机网站菜单
  • 学做网站在什么地方学石家庄seo网络推广
  • 域名网站备案资源最多的磁力搜索引擎
  • 有专门学做衣服网站菠菜网站怎么建设
  • 济南网站建设公司按需定制微营销工具有哪些