我有一个多线程应用程序,其中的踏板适用于使用 sqlalchemy 获取的一些对象。对象被放入线程轮询的线程队列中。
在主线程中我这样做:
feeds = db_session.query(Feed).filter(Feed.last_checked <= int(update_time)).all()
for feed in feeds:
self.feed_q.put(feed)
在线程中,我对提要对象进行了一些更新,并且有时在进行更新时会不断收到这些异常:
ProgrammingError: (ProgrammingError) (2014, "Commands out of sync; you can't run this command now")
StatementError: Can't reconnect until invalid transaction is rolled back (original cause: InvalidRequestError: Can't reconnect until invalid transaction is rolled back)
我知道这与共享同一数据库会话的线程有关,但我不知道如何解决这个问题。