sql >> Databáze >  >> NoSQL >> MongoDB

Proč PyMongo vyvolává AutoReconnect?

Špatně jste pochopili AutoReconnect. Vyvolá se, když se ovladač pokusí komunikovat se serverem (odeslat příkaz nebo jinou operaci) a dojde k selhání sítě nebo podobnému problému. Název výjimky má sdělovat, že ne Pokud musíte vytvořit novou instanci MongoClient, stávající klient se pokusí automaticky znovu připojit, když se vaše aplikace pokusí o další operaci. Pokud dojde ke stejnému problému, znovu se aktivuje automatické opětovné připojení.

Domnívám se, že důvodem, proč se vám zobrazuje časový limit soketů (a aktivace funkce AutoReconnect), je to, že mezi serverem a vaší aplikací existuje nástroj pro vyrovnávání zatížení, který po určité době nečinnosti uzavírá připojení. Například k tomu zjevně dochází na platformě Azure společnosti Microsoft po 13 minutách nečinnosti na soketu. Možná to budete moci opravit pomocí možnosti socketKeepAlive přidané v PyMongo 2.8. Všimněte si, že budete muset také nastavit interval udržování na vašem aplikačním serveru na vhodnou hodnotu (výchozí v Linuxu jsou 2 hodiny). Další informace naleznete zde.




  1. Mongodb Snaží se získat vybraná pole pro návrat z agregace

  2. MongoDB $round vs $trunc:Jaký je rozdíl?

  3. Může MongoDB použít index při kontrole existence pole s operátorem $exists?

  4. Nelze se připojit k MongoDB 3.0.0 pomocí ovladače C# 1.10