对于sqlalchemy-psql中的锁定机制是如何工作的,我完全困惑不解。 我正在用sqlalchemy和postgres运行一个python-flask应用程序。因为我有多个线程处理的一些数据,并更新它的psql,我正在以下死锁:postgres中的锁定机制/ postgres中的死锁。 [我正在使用sqlalchemy]
2015年12月31日17:[ERROR](凸起作为查询调用的自动冲洗的结果;可考虑使用(psycopg2.extensions.TransactionRollbackError)检测到死锁
详细信息:进程22833在事务14114188上等待ShareLock;被进程19759阻塞。
进程19759在事务14114189上等待ShareLock;阻止过程22833.
这是一个僵局可能是如何产生的:
Thread 1 Thread 2
| (start an sqlalchemy session) |
db.session() db.session()
|(Using sqlalchemy) |
Update row1 of table1 Update row2 of table 1
| |
Update row2 of table1 Update row1 of table1
| |
session.commit() session.commit()
Here一些答案,我的问题,但我不懂得如何跟他们的SQLAlchemy。