mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-05 03:23:49 +08:00
server: refactor http post retry
This commit is contained in:
parent
d161f35c69
commit
ee9af5fa69
@ -350,36 +350,32 @@ func (c *HTTPClient) onBotPushEvent(e *coolq.Event) {
|
|||||||
header.Set("X-API-Port", strconv.FormatInt(int64(c.apiPort), 10))
|
header.Set("X-API-Port", strconv.FormatInt(int64(c.apiPort), 10))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var req *http.Request
|
||||||
var res *http.Response
|
var res *http.Response
|
||||||
|
var err error
|
||||||
for i := uint64(0); i <= c.MaxRetries; i++ {
|
for i := uint64(0); i <= c.MaxRetries; i++ {
|
||||||
// see https://stackoverflow.com/questions/31337891/net-http-http-contentlength-222-with-body-length-0
|
// see https://stackoverflow.com/questions/31337891/net-http-http-contentlength-222-with-body-length-0
|
||||||
// we should create a new request for every single post trial
|
// we should create a new request for every single post trial
|
||||||
req, err := http.NewRequest("POST", c.addr, bytes.NewReader(e.JSONBytes()))
|
req, err = http.NewRequest("POST", c.addr, bytes.NewReader(e.JSONBytes()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warnf("上报 Event 数据到 %v 时创建请求失败: %v", c.addr, err)
|
log.Warnf("上报 Event 数据到 %v 时创建请求失败: %v", c.addr, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
req.Header = header
|
req.Header = header
|
||||||
|
|
||||||
res, err = c.client.Do(req)
|
res, err = c.client.Do(req)
|
||||||
if res != nil {
|
if err != nil {
|
||||||
//goland:noinspection GoDeferInLoop
|
|
||||||
defer res.Body.Close()
|
|
||||||
}
|
|
||||||
if err == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if i < c.MaxRetries {
|
if i < c.MaxRetries {
|
||||||
log.Warnf("上报 Event 数据到 %v 失败: %v 将进行第 %d 次重试", c.addr, err, i+1)
|
log.Warnf("上报 Event 数据到 %v 失败: %v 将进行第 %d 次重试", c.addr, err, i+1)
|
||||||
} else {
|
} else {
|
||||||
log.Warnf("上报 Event 数据 %s 到 %v 失败: %v 停止上报:已达重试上线", e.JSONBytes(), c.addr, err)
|
log.Warnf("上报 Event 数据 %s 到 %v 失败: %v 停止上报:已达重试上限", e.JSONBytes(), c.addr, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
time.Sleep(time.Millisecond * time.Duration(c.RetriesInterval))
|
time.Sleep(time.Millisecond * time.Duration(c.RetriesInterval))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
defer res.Body.Close()
|
||||||
|
|
||||||
log.Debugf("上报Event数据 %s 到 %v", e.JSONBytes(), c.addr)
|
log.Debugf("上报Event数据 %s 到 %v", e.JSONBytes(), c.addr)
|
||||||
|
|
||||||
r, err := io.ReadAll(res.Body)
|
r, err := io.ReadAll(res.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user