从两个进程访问ZODB

Loï*_*oix 2 python zodb pyramid

我有一个站点,每当我尝试在服务器运行时打开数据库时,它会显示一个错误,数据库已由另一个进程打开.

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

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

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

Mar*_*ers 5

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

你有3个选择:

  • 使用ZEO创建专用进程以共享ZODB存储.曾经有一个关于使用ZODB和ZEO的Pyramid烹饪书条目以及金字塔特定的说明,但考虑到它已于2013年12月删除,因为它已过时.对我来说,指令仍然看起来相当准确,但我还没有测试过它们.
  • 使用RelStorage将对象数据库存储在Oracle,MySQL或PostgeSQL中.
  • 使用NEO将MySQL用作分布式后端.警告:这个平台尚未与Python 3兼容,但该项目正在积极开展工作(截至2018年11月),因此可能会出现这种情况.