python - Doing threading with sqlalchemy properly? -
i have multi threaded application treads work on objects fetched using sqlalchemy. objects put in thread queue threads poll from.
in main thread doing this:
feeds = db_session.query(feed).filter(feed.last_checked <= int(update_time)).all() feed in feeds: self.feed_q.put(feed)
and in threads updates feed objects, , keep getting these exceptions when doing updates:
programmingerror: (programmingerror) (2014, "commands out of sync; can't run command now") statementerror: can't reconnect until invalid transaction rolled (original cause: invalidrequesterror: can't reconnect until invalid transaction rolled back)
i understand has todo threads sharing same db session, don't know how fix this.
each thread should have separate database session. you're creating object that's stored in db_session
somewhere, perhaps this:
db_session = session()
essentially, need each thread have own db_session
.
Comments
Post a Comment