J'ai développé une API de repos en utilisant golang, j'ai poussé le référentiel vers Heroku.J'ai également hébergé un serveur Mysql sur Internet.L'API Go reste se connecte au serveur Mysql et récupère et insère des données.
Le L'application sur heroku fonctionnait bien hier.Cependant, ce matin, j'obtiens cette erreur sur "heroku logs --tail": le processus Web n'a pas pu se lier à $ PORT dans les 60 secondes suivant le lancement
Voici le code pour .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) }
3 Réponses :
Il s'agit d'un problème connu pour les applications node.js sur Heroku.
Dans des cas plus rares, votre application utilise peut-être process.env.PORT, mais ne parvient toujours pas à se lier. Cela peut être dû au fait que l'application tente de se lier sur localhost. Au lieu de cela, vous devrez peut-être changer cela en 0.0.0.0.
On peut supposer que la même chose pourrait également être un problème pour le service go. Consultez cet article sur Site d'assistance Heroku .
J'ai résolu cela en utilisant
os.Getenv ("PORT")
Vous pouvez utiliser os.Getenv
pour cela.
Voici le code pour main.go après la modification:
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) }