micro使用心得

client调用srv超时

现象

 {"id":"go.micro.client","code":408,"detail":"call timeout: context deadline exceeded","status":"Request Timeout"}

解决方案

// 用http导入1.2W条数据,需要6分钟。设置超时,可以避免RPC调用超时
// 后续会改成websocket传输,提供进度条
start := time.Now()
var opts client.CallOption = func(o *client.CallOptions) {
	o.RequestTimeout = time.Second * 3600
	o.DialTimeout = time.Second * 3600
}

_, err := s.c.MRpc.SysClient.Icd10Srv.BatchAddIcd10(ctx, &model, opts)
if err != nil {
	sub := time.Now().Sub(start).String()
	logs.Debug("导入Excel耗时: %s", sub)
	RPCErr := ecode.Parse(err.Error())
	return ecode.Code{ID: RPCErr.Code, Msg: RPCErr.Msg}
}
sub := time.Now().Sub(start).String()
logs.Debug("导入Excel耗时: %s", sub)

你可能感兴趣的:(go,后端)