Frage

Nachdem mit verschiedenen Dingen hier kämpfen und dort war ich endlich in der Lage zu bekommen BottlePY auf Apache laufen und laufen ein MongoDB Website mit Strom versorgt. Ich bin es gewohnt, Django apps laufen, so will ich, dass etwas in meiner Frage im Zusammenhang werden.

Das Problem

Jedes Mal, wenn eine Seite über BottlePY geladen wird, die Verbindung zur Datenbank MongoDB befindet sich auf MongoHQ.com muss erneut authentifiziert sein (was bedeutet es wahrscheinlich wieder angeschlossen hatte).

Was ich gefunden

Ich legte eine db.keep_alive() Funktion auf die Oberseite jeder Modellfunktion, die so vor jeder mongodb Abfrage ausgeführt wird, es versucht, eine einfache Abfrage auszuführen. Schlägt dies fehl, fängt sie die OperationFailure oder AutoReconnect Fehler und ruft dann die db.authenticate() Funktion. Nachdem es reauthenticates, ich habe es ein Protokoll hinzufügen, um eine Protokoll zu überwachen db, wie oft es erneut authentifizieren muss. Derzeit braucht es auf jeder Seite zu laden, um eine erneute Authentifizierung (dh eine Abfrage erfordert ausgeführt wird). Das ist nicht richtig.

Unterschied von Django

Ich verwende das gleiche Konzept in django, und habe festgestellt, dass die DB-Verbindung muss erst nach 10 bis 15 Minuten von nicht-Abfragen authentifiziert wird die ausgeführt wird.

Ich verstehe nicht, warum eine pymongo Verbindung in django Schaffung von Anders wäre eine zu schaffen in der Flasche, da ich die gleichen Treiber, Funktionen und Methoden verwenden. Ich bin keine ORMS oder ähnliches entweder verwenden.

Versionen

  • Flasche: 0.9.dev
  • Django: 1.2.1 final
  • PyMongo: 1.8

Ich schätze die Hilfe!

Update: Ein Freund konnte einen kurzen Blick nehmen und bemerkte folgende dass Mai Hilfe bei der Beantwortung meiner Frage.

  

Es scheint, dass jede Anforderung   einen neuen Python-Prozess startet, wie   Gegensatz zu Django, in dem eine einzige   Prozess bleibt für ein langen Lauf   Zeitraum.

War es hilfreich?

Lösung

Damit endete nur eine seltsame Sache zwischen Flasche und MongoHQ betragen. Keine wirkliche Lösung gefunden wurde, aber ich konnte es nicht mit einem anderen Rahmen neu zu erstellen. Jede andere Ideen sind willkommen.

Andere Tipps

hat Ihr Apache xxx.conf etwas wie zu enthalten:

WSGIDaemonProcess project user=mysite group=www-data processes=5 threads=1 WSGIProcessGroup project

Ich denke, am wichtigsten sein sollte threads=1

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top