python - 从两个进程访问 ZODB

标签 python pyramid zodb

我有一个站点,每当我在服务器运行时尝试打开数据库时,它都会显示一条错误消息,指出数据库已被不同的进程打开。

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

到目前为止,从不同的进程打开数据库似乎是不可能的,而文档实际上说可以有多个连接到数据库。

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

最佳答案

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

这里有 3 个选项:

  • 使用ZEO创建一个专用进程来共享 ZODB 存储。在 Using ZODB with ZEO 上曾经有一个 Pyramid 食谱条目使用 Pyramid 特定的说明,但要考虑到它是 removed in December 2013因为过时了。对我来说,这些说明看起来仍然相当准确,但我还没有测试过它们。
  • 使用RelStorage将对象数据库存储在 Oracle、MySQL 或 PostgeSQL 中。
  • 使用NEO使用 MySQL 作为分布式后端。警告:该平台(尚未)与 Python 3 兼容,但该项目正在积极开展工作(截至 2018 年 11 月),因此这可能会成为现实。

关于python - 从两个进程访问 ZODB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293690/

相关文章:

plone - 如何从 .fsz 文件恢复 zope 数据库?

Python 类找不到属性

python - 更改python环境 'cmd'无法识别

python - 在没有模板系统的情况下安装 Pyramid(Mako 和 Chameleon)

python - 如果使用嗅探器重新执行, Pyramid 应用程序的测试将失败

python - 在 zodb 中索引我的对象有什么好的指南和/或建议吗?

python - ZODB python : how to avoid creating a database with only one big entry?

python - 范围内输入值较大的问题

python - 在 Python 中操作目录路径

python - Pyramid "select"表单输入引发KeyError