1. ホーム
  2. node.js

[解決済み] Herokuのエラー。Webプロセスが起動から60秒以内に$PORTへのバインドに失敗しました(axios使用時)

2022-03-07 15:34:39

質問

これがエラーコードの全容です。 Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch(起動から60秒以内に、Webプロセスが$PORTにバインドできませんでした。

多くの回答は、herokuが動的に行うので、ポートの設定に関係すると言っていますが、もし私がserver.listenではなくaxiosを使っていて、mcsrv apiに特定のポートが必要なら、この問題を解決するにはどうすればいいでしょうか?

すでにprocess.env.PORTに設定しようとしましたが無駄でした(||ステートメントを使ってデフォルトポートに設定するのも同様です)。

 // Function for getting player counts
require('dotenv').config()

const axios = require('axios')

function pingForPlayers() {

    // Ping API for server data.

    axios.get(`https://api.mcsrvstat.us/2/play.lightningshot.net`)
    .then(response => {

        // If it gets a valid response

        if(response.data && response.data.players) {

            let playerCount = response.data.players.online || 0 // Default to zero

            info = `${playerCount}`

            client.channels.get('605543627208392875').setName("Players Online: " + info)

            // Could add console.log for more info, not necessary waste of cache data
        }

        else
            console.log('Could not load player count data for', process.env.MC_SERVER)


    }).catch(err => console.log('Error pinging api.mcsrvstat.us for data:', err))

}

解決方法は?

あなたのアプリはウェブアプリではありません。

を追加することができます。 Procfile をソースに追加してください。

worker:  node index.js // (or your main file)

そして、workerに変更します。

  • Herokuのダッシュボードで、タブのリソースをクリックします。
  • とワーカーを有効にする