Frage

Kann ich assert Schienen / sinatra Apps werden nur einmal initialisiert und alle Anfragen teilen sich die gleiche App Beispiel? oder haben neue Anfragen Laich neue App-Instanzen?

Ist es möglich, beispielsweise benutzerdefinierte Klassen und bleiben sie während der App-Lebensdauer ohne Sitzungen, Datenbankspeicher oder Dienste von Drittanbietern verwenden? Wenn ja, was sind die Konsequenzen aus einer Thread-Sicherheit Sicht?

Ich bin zu Figur versuche, wie einen Web-basierte Download-Manager zu implementieren, und ich bin derzeit rubin basierten Frameworks zu bewerten.

War es hilfreich?

Lösung

  

Kann ich assert Schienen / sinatra Anwendungen sind   nur einmal und alle Anfragen initialisiert   teilen sich die gleiche App-Instanz? oder tun, um neue   Anfragen Laich neue App-Instanzen?

Nicht im Allgemeinen. Das hängt wirklich von Ihrem Setup. Wenn Sie nur auf Verfahren mit einem Server (auch bekannt als Rack-Handler), die das gleiche Anwendungsobjekt wieder verwendet, wird diese Arbeit. Ob die gleiche Instanz Ihrer Anwendung verwendet wird, hängt von der Web-Framework Sie verwenden. Sinatra zum Beispiel eine neue Instanz der Anwendung Klasse erstellt (in der Regel Sinatra::Application) für jede Anfrage als Rack-Endpunkt verwendet, wenn.

  

Ist es möglich, beispielsweise benutzerdefinierte   Klassen und bleiben sie während des App   Lebensdauer ohne Sitzungen zu verwenden,   Datenbank Speicher oder Dritten   Dienstleistungen? Wenn ja, was ist die   Auswirkungen von einer gewinde Unbedenklichkeit   Sicht?

Wenn Sie wirklich Klassen wollen bestehen bleiben, werden Sie wahrscheinlich so etwas wie Magnetschwebebahn benötigen. Aber ich glaube, meinen Sie Instanzen von benutzerdefinierten Klassen persistierenden. Wenn Sie nicht über eine Datenbank für die Persistenz (Sie sollten wirklich) verwenden möchten, könnten Sie zu PStore zurückgreifen, die Schiffe mit Rubin.

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