2

MongoDB バックエンドに対して定期的な socket.io 呼び出しを行う Node.js Web アプリがあります (30 分ごと)。これをローカルで何日も問題なく実行できます。最近、Heroku (無料、1 Dyno、DB に MongoLab を使用) にデプロイしたところ、すべてが起動し、正常に動作します。ただし、更新が開始されると、ブラウザー コンソールに多数のエラーが表示され、更新がうまくいかず、最終的に (約 3 つまたは 4 つの更新が行われます)、常に、タブが 30% の CPU でハングし、 800MB RAM (通常、公称 CPU と最大で約 300-400MB RAM を搭載している場合)。

一連の約束を使用して、非同期 DB 更新ステップが完全な順序で実行され、常にローカルで実行されるようにします。しかし、console.logs は、アプリが正常に実行されていないことを示唆しています。つまり、アプリが依存する promise が解決される前にアプリが移動することは不可能です。それはすべてのエラーを説明するでしょう (未定義の変数など) これは、私が目にするほとんどのトラブルシューティングの質問のように、アプリのデプロイや Heroku でのアプリの起動の問題ではありません。アプリが実行され、ポートに接続され、エラーなしでブラウザーに表示されます。物事が混乱するのは、少し走った後だけです。私は途方に暮れています。

4

1 に答える 1

1

接続コードとエラーを見ずに判断するのは困難ですが、最初に思い浮かぶのは connectTimeoutMS および socketTimeoutMS オプションの設定です (通常は 30 秒または 30000 をお勧めします)。タイムアウトを設定すると、Heroku への接続に非常に役立つという問題がいくつか見られました。特にアイドリング後です。

それでも助けが必要な場合は、support@mongolab.com までご連絡ください。原因究明のお手伝いをいたします。

于 2013-08-22T17:27:26.200 に答える