Golang:ExecuteTemplate导致错误:`write tcp 127.0.0.1:8080->127.0.0.1:35212:write:broken pipe` with multiple requests

时间:2016-10-11 16:51:24

标签: http go template-engine

我有这样的事情:

t, err1 := template.ParseFiles("exampleFile.tmpl")
if err1 != nil {
    panic(err1)
}
err2 := t.ExecuteTemplate(w, "example", someStruct)
if err2 != nil {
    panic(err2)
}

简单的请求,没有问题。

但是,如果我发送两个非常接近的请求,大约40%的时间来自Chrome的简单页面刷新和一些ajax请求,则会导致各种不同的错误(错误2):

  • write tcp 127.0.0.1:8080->127.0.0.1:35212: write: broken pipe
  • write: connection reset by peer
  • use of closed network connection
  • http: panic serving 127.0.0.1:35814: runtime error: slice bounds out of range goroutine 340 (...)

其他人似乎有类似的问题,但没有明确的解决方案。

另一篇文章似乎建议只是期待这一点,并重试失败的请求:

Golang最好的办法是什么?

0 个答案:

没有答案