Ich habe ASP.NET verwendet und arbeite jetzt an einer Sinatra/MongoDB App. Bei der ASP.NET-Architektur stammt die Verbindung zu der Datenbank, die eine bestimmte Anforderung verwendet, aus einem Pool von Verbindungen, die von ADO.NET verwaltet werden. Die Verbindungen werden im Pool zwischen Anfragen am Leben erhalten, so dass die Kosten für den Aufbau und das Abbauen der Verbindung nicht für jede HTTP-Anfrage bezahlt werden.Mit Sinatra und MongoDB - was ist die empfohlene Methode, um die Mongodb-Verbindung zwischen http-Anfragen "am Leben zu erhalten"?
Gibt es einen ähnlichen Mechanismus in einer Sinatra MongoDB App, oder muss ich mich bei jeder Anfrage verbinden/trennen? Wenn es einen Mechanismus gibt, wie sieht der Code aus?
EDIT1: Folgendes funktioniert NICHT. Jede HTTP-Anfrage, die der Browser sendet, trifft die Zeile new.db, einschließlich Anfragen für CSS-, JS- und JPEG-Dateien.
require 'mongo'
include Mongo
db = Mongo::Connection.new.db("MyDb")
class MyApp < Sinatra::Base
get '/' do
etc
Hier ist eine ziemlich gute [Beispiel-App] (http://github.com/dancroak/shorty), die Sinatra und MongoDB verwendet - wahrscheinlich kann man einen guten Start von diesem Code bekommen. – mdirolf
Wenn ich das mache, was Sie tun und die Ausgabe von mongod betrachten, sehe ich Verbindungen für jede HTTP-Anfrage, einschließlich Anfragen für CSS, JS-Dateien. –