从两个进程访问ZODB

时间:2012-11-08 16:49:46

标签: python pyramid zodb

我有一个网站,每次我在服务器运行时尝试打开数据库时,都会显示一个错误,表明数据库已经被其他进程打开了。

问题是我有一些脚本可以用cron来安排检查数据库,甚至只是在服务器运行时使用pshell

截至目前,似乎无法从不同的进程打开数据库,而doc实际上说可以与数据库建立多个连接。

这个问题迫使我一次只运行一个脚本/进程,包括服务器。

1 个答案:

答案 0 :(得分:5)

ZODB在其默认配置中是一个进程内对象数据库。但是,您可以使用客户端 - 服务器模型跨进程共享它。

这里有3个选项:

  • 使用ZEO创建共享ZODB存储的专用进程。以前在Using ZODB with ZEO上有金字塔特定说明的金字塔食谱条目,但考虑到它已过时removed in December 2013。对我来说,指令仍然看起来相当准确,但我还没有测试过它们。
  • 使用RelStorage将对象数据库存储在Oracle,MySQL或PostgeSQL中。
  • 使用NEO将MySQL用作分布式后端。警告:这个平台尚未与Python 3兼容,但该项目正在积极开展工作(截至2018年11月),所以这可能就在卡片中。