Sqlalchemy如何结束与数据库的连接以防止死锁



在我的项目中,我正在收听kafka流,并将消息放入数据库。我当前正在创建一个作用域会话以连接到我的数据库。在记录加载后,是否有适当的方法关闭连接以避免死锁?

我有一个try-catch finally块可以做这些事情,但我想知道其中哪一个是真正必要的:

session.flush()
session.expire_all()
session.expunge_all()
session.remove()
session.close_all()

如果有帮助的话,当我创建连接时,我也会使用具有以下设置的连接池:

ENGINE = sqlalchemy.create_engine(f'db2+ibm_db://{CONNECTION_STRING}', echo=False,
pool_timeout=60, pool_recycle=30, pool_size=30, max_overflow=5,

session.commit()session.close()应该足以释放会话持有的所有锁。

最新更新