我创建了一个新的 Pylons 项目,并想使用 Cassandra 作为我的数据库服务器。我计划使用 Pycassa 来使用 cassandra 0.7beta。 不幸的是,我不知道在哪里实例化连接以使其在我的应用程序中可用。
目标是:
- 在应用程序启动时创建一个池
- 为每个请求从池中获取一个连接,并使其可供我的 Controller 和库使用(在请求的上下文中)。最好的办法是“懒惰地”从池中获取连接,即仅在需要时
- 如果连接已被使用,则在处理完请求后释放它
此外,有什么重要的事情我应该知道吗?当我看到一些评论,如“在使用带有 use_threadlocal=True 的 QueuePool 时要小心,尤其是在启用重试的情况下。可能需要同步以防止连接在另一个线程正在使用它时发生变化。”,这到底是什么意思?
谢谢。
-- 皮埃尔
最佳答案
嗯。我工作了一点。事实上,使用连接管理器可能不是一个好主意,因为这应该 是模板上下文。此外,为每个线程打开一个连接并不是什么大问题。每个请求打开一个连接。
我最终在 app_globals 中得到了 pycassa.connect_thread_local()
,然后我开始了。
关于python - 如何在 Pylons 应用程序中连接到 Cassandra?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3671535/