and this: http://www.sqlalchemy.org/docs/core/connections.html

I should have RTFM.

On Oct 4, 8:36 pm, Sean DiZazzo <[email protected]> wrote:
> Hi,I have a Turbogears 2.1.2 app that kicks off a long running
> parallel task.  The task is run in many threads and on several
> machines,and they all need to use the model to update the database.
> What are the best practices for running DBSessions in threads?  I
> found somewhere that I should create 1 scoped_session per thread, and
> I am generally doing that with the following initialization code:
>
> engine = create_engine('mysql://user:pass@localhost:3306/
> foo',echo=False)
> DeclarativeBase = declarative_base()
> maker = orm.sessionmaker(autoflush=True, autocommit=False)
> DBSession = orm.scoped_session(maker)
> maker.configure(bind=engine)
>
> Is that right?
>
> Since I'm creating a new session and not using the one from the model,
> do I need to commit()?  I assume it is not safe to pass around
> sqlalchemy results between threads.  Do I need to explicitly close()
> the session when I am done in each thread?  Will I run in to problems
> if 20 different threads with 20 different sessions are accessing the
> database at the same time?  I thought I saw some kind of config
> regarding connection_pool...is this related?
>
> Would it be better to create a singleton that holds the session and
> then instantiate that wherever I need it?  I have done that with
> SQLObject before and it worked great.
>
> Sorry for all of the questions.  I have been trying all kinds of
> things and I can't seem to get it quite right. Thanks.
>
> ~Sean

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.

Reply via email to