sql >> データベース >  >> NoSQL >> MongoDB

PyMongoがAutoReconnectをスローするのはなぜですか?

    AutoReconnectを誤解しています。これは、ドライバーがサーバーと通信しようとして(コマンドまたはその他の操作を送信するため)、ネットワーク障害または同様の問題が発生した場合に発生します。例外の名前は、しないことを伝えるためのものです。 MongoClientの新しいインスタンスを作成する必要があります。既存のクライアントは、アプリケーションが次の操作を試行したときに自動的に再接続を試みます。同じ問題が発生した場合は、AutoReconnectが再度発生します。

    ソケットがタイムアウトする(およびAutoReconnectが発生する)のは、サーバーとアプリケーションの間にロードバランサーがあり、一定期間非アクティブになった後に接続を閉じるためだと思います。たとえば、これは、ソケットで13分間アクティビティが発生しなかった後、MicrosoftのAzureプラットフォームで発生するようです。これは、PyMongo2.8で追加されたsocketKeepAliveオプションを使用して修正できる場合があります。また、アプリケーションサーバーのキープアライブ間隔を適切な値に設定する必要があることに注意してください(Linuxのデフォルトは2時間です)。 詳細については、こちらをご覧ください。




    1. Ember、Ember Data、MongoDBの_id

    2. mongodbのフィールドの値のみを返す方法

    3. redis:毎日カウンターをリセット

    4. HerokuのRedistogoとSidekiq:接続できません