3
votes

Le processus Web n'a pas pu se lier à $ PORT dans les 60 secondes suivant le lancement de Golang

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)
}


0 commentaires

3 Réponses :


-2
votes

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 .


0 commentaires

0
votes

J'ai résolu cela en utilisant

os.Getenv ("PORT")


0 commentaires

0
votes

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)
}


0 commentaires