Scoped session

This commit is contained in:
Ruud
2014-01-27 21:56:47 +01:00
parent fe24322f7c
commit 00b613d2e0
+9 -1
View File
@@ -2,6 +2,7 @@ from couchpotato.core.event import fireEvent, addEvent
from couchpotato.core.loader import Loader from couchpotato.core.loader import Loader
from couchpotato.core.settings import Settings from couchpotato.core.settings import Settings
from sqlalchemy.engine import create_engine from sqlalchemy.engine import create_engine
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm.session import sessionmaker from sqlalchemy.orm.session import sessionmaker
import os import os
@@ -24,6 +25,7 @@ class Env(object):
_daemonized = False _daemonized = False
_desktop = None _desktop = None
_engine = None _engine = None
_session = None
''' Data paths and directories ''' ''' Data paths and directories '''
_app_dir = "" _app_dir = ""
@@ -54,7 +56,13 @@ class Env(object):
@staticmethod @staticmethod
def getSession(): def getSession():
session = sessionmaker(bind = Env.getEngine()) existing_session = Env.get('session')
if existing_session:
return existing_session()
session = scoped_session(sessionmaker(bind = Env.getEngine()))
Env.set('session', session)
return session() return session()
@staticmethod @staticmethod