【发布时间】:2011-12-17 10:39:07
【问题描述】:
在我基于 Web 的应用程序中,我决定使用 Cherrypy 3.2 作为 http 框架。
我正在使用cherrypy.Application 类创建与 WSGI 兼容的应用程序对象,该对象通过 Apache2 和 mod_wsgi 提供服务。
另外,我只使用 SQLalchemy 0.7.3 的核心组件(不是 ORM)。有一些用于cherrypy 的工具可用于每个请求的正确会话绑定(如SATools)。但是 SQLalchemy 的 Session 对象是 ORM 的一部分,而不是核心。
所以我开始考虑如何制作类似的工具但没有会话。
SQLalchemy 的文档说:
对于使用 os.fork 系统调用的多进程应用程序, 或者例如 Python 多处理模块,它通常是 要求为每个子进程使用单独的引擎。
那么如何正确地为每个cherrypy 线程创建一个引擎呢?注意线程是由 apache2 创建的(可能)。
谢谢!!
编辑:这可能很重要,wsgi 应用程序由 apache2 以守护程序模式运行
【问题讨论】:
标签: thread-safety python-3.x sqlalchemy cherrypy