SQLAlchemy、sqlite与fork()

1 投票
2 回答
706 浏览
提问于 2025-04-17 03:08

在一个使用 fork()SQLAlchemysqlite 项目中,最好的做法是什么呢?

SQLAlchemy 的文档里提到,应该在子进程中调用 create_engine(),但没有提到其他需要注意的地方。我相信还有很多需要注意的事项,比如写入锁、忙碌超时、连接问题等等。

那么,关于使用事务还是作用域会话的设计问题,这个会有影响吗?

2 个回答

0

SQLite会为你处理所有数据库的锁定问题;这意味着在数据库连接的客户端,你不需要也不应该去考虑这些事情。

1

SQLite不支持同时写入,也就是说在任何时候,只有一个客户端可以往同一个数据库里写数据。因为有这个限制,使用事务的唯一好处就是可以撤销操作。如果你打算使用多个数据库,要注意不要陷入死锁的情况,比如两个进程在一个数据库里持有写锁,同时又想在另一个数据库里获取写锁,这样就会造成冲突。

撰写回答