我在Heroku上运行我的Golang服务。非常奇怪的是,我在该服务中有一些似乎非常随机的小型hickup。该服务只是用Golang编写的,不与任何数据库,存储解决方案或缓存服务交互。
我已经联系了Heroku的支持,他们主要在dyno-restart期间暗示我发生这种情况。他们告诉我,虽然当dyno被回收时启用了预启动,但新的dyno即将启动并立即占用流量,然后关闭旧的dyno。因此,我认为可能中断来自Golang HTTP服务器的启动速度不够快?以下是我如何运行它:
s := &http.Server{
Addr: ":"+exposePort,
Handler: h,
ReadTimeout: time.Duration(timeout) * time.Second,
WriteTimeout: time.Duration(timeout) * time.Second,
}
err = s.ListenAndServe()
errs <- fmt.Errorf("Server error", err.Error())
if client != nil {
client.CaptureMessage(err.Error())
}
go func() {
c := make(chan os.Signal)
signal.Notify(c, syscall.SIGINT)
errs <- fmt.Errorf("%s", <-c)
}()
这是一个已知问题还是有人经历过类似的事情?真的很感激一些帮助!