Web 进程在启动 golang 后 60 秒内未能绑定到 $PORT

fre*_*r86 5 heroku go mux

我使用golang开发了一个rest api。我已将存储库推送到Heroku。我还在互联网上托管了一个Mysql服务器。Go rest api连接到Mysql服务器并获取和插入数据。

heroku 上的应用程序昨天工作正常。但是今天早上我在“heroku log --tail”上收到此错误:Web 进程无法在启动后 60 秒内绑定到 $PORT

这是 main.go 的代码:

package main

import (
    "os"
    "github.com/mingrammer/go-todo-rest-api-example/app"
    "github.com/mingrammer/go-todo-rest-api-example/config"
)

func main() {
    config := config.GetConfig()

    app := &app.App{}
    app.Initialize(config)
    port, ok := os.LookupEnv("PORT")

    if ok == false {
        port = "3000"
    }

    app.Run(":"+port)
}
Run Code Online (Sandbox Code Playgroud)

OM *_*iya 5

你可以用os.Getenv它。

修改后的main.go代码如下:

package main

import (
    "os"
    "github.com/mingrammer/go-todo-rest-api-example/app"
    "github.com/mingrammer/go-todo-rest-api-example/config"
)

func main() {
    config := config.GetConfig()

    app := &app.App{}
    app.Initialize(config)
    port, err := os.Getenv("PORT")
    if err != nil {
        port = "3000"
    } 

    app.Run(":"+port)
}
Run Code Online (Sandbox Code Playgroud)


Vok*_*erg -1

这是 Heroku 上的 Node.js 应用程序的已知问题。

在极少数情况下,您的应用程序可能正在使用 process.env.PORT,但可能仍然无法绑定。这可能是由于应用程序尝试在本地主机上绑定造成的。相反,您可能需要将其更改为 0.0.0.0。

可以假设 go 服务也可能存在同样的问题。在Heroku 支持网站上查看这篇文章。