Ich suche hier Rat zu einem "hack" von leuten die Erfahrung mit SQLAlchemy in Anwendungen mit Threads haben.
Und zwar geht es mir um die Frage, wie man die Sessions pro thread erstellt. Soweit ich das verstanden habe, wird für jeden Thread eine Session mit der methode scoped_session(...) erzeugt und dann in einem object des typs threading.local abgelegt, richtig?
also zB so:
Code: Alles auswählen
from sqlalchemy.orm import scoped_session, sessionmaker
from threading import local
# framework.thread_data = local()
def beim_starten_eines_threads():
framework.thread_data.session = scoped_session(sessionmaker(...))
Code: Alles auswählen
from threading import local
from sqlalchemy.orm.scoping import ScopedSession
class LocalSession(local, ScopedSession):
def __init__(self, session_factory, scopefunc=None):
ScopedSession.__init__(self,session_factory, scopefunc=scopefunc)
def beim_starten_eines_threads():
db = LocalSession(sessionmaker(...))
Jan