33 lines
786 B
Go
33 lines
786 B
Go
package trace
|
||
|
||
import "sync"
|
||
|
||
var _ D = (*Dialog)(nil)
|
||
|
||
type D interface {
|
||
i()
|
||
AppendResponse(resp *Response)
|
||
}
|
||
|
||
// Dialog 内部调用其它方接口的会话信息;失败时会有retry操作,所以 response 会有多次。
|
||
type Dialog struct {
|
||
mux sync.Mutex
|
||
Request *Request `json:"request"` // 请求信息
|
||
Responses []*Response `json:"responses"` // 返回信息
|
||
Success bool `json:"success"` // 是否成功,true 或 false
|
||
CostSeconds float64 `json:"cost_seconds"` // 执行时长(单位秒)
|
||
}
|
||
|
||
func (d *Dialog) i() {}
|
||
|
||
// AppendResponse 按转的追加response信息
|
||
func (d *Dialog) AppendResponse(resp *Response) {
|
||
if resp == nil {
|
||
return
|
||
}
|
||
|
||
d.mux.Lock()
|
||
d.Responses = append(d.Responses, resp)
|
||
d.mux.Unlock()
|
||
}
|