当前位置: 首页 > 面试题库 >

在Google Cloud SQL(GAE)Python应用程序中管理数据库连接的好方法是什么?

岳浩
2023-03-14
问题内容

我只是在学习Google App Engine,并试图找到一种管理与Google Cloud SQL实例的数据库连接的好方法(如果您还没有使用GC-
SQL,那么基本上是在云中使用MySQL,限制)。

我正在将python(2.7)GAE环境与webapp2框架一起使用来处理请求。我知道常见问题解答说,建议每个请求都与数据库建立新的连接,但是我不知道关闭连接的推荐方法是什么。每次我在开发过程中尝试删除表时,GC-
SQL都会挂起,并且“ show
processlist”显示有很多进程(可能是因为我没有关闭数据库),并且其中一个正在等待锁(可能是尝试删除表格的过程)。这很烦人,迫使我重新启动GC-
SQL实例(我想像是重新启动mysql-server服务)。我认为偶尔也会出现数据库故障,这与我并未真正关闭数据库连接有关。

因此,例如,我是否应该在我的webapp2.Requesthandler子类实例上有一个析构函数来与数据库断开连接?GAE对象似乎有时会被缓存,因此这也是要考虑的事情。我想我可以为每个查询连接/查询/断开连接,但这似乎不是最理想的。

我知道这是一个模糊的问题,但是我希望这个领域的人能以我的方式提出一些建议。

提前致谢!

更新: 我尝试以Shay的答案为出发点,围绕需要cursot的方法实现包装器。我收到GAE错误。这是一个新的特定问题:App
Engine对Google Cloud
SQL的连接限制是什么,如何最好地重用数据库连接?


问题答案:

我不熟悉Google Cloud SQL,但是您不能使用WSGI中间件来打开和关闭连接吗?



 类似资料:
  • 问题内容: 我正在使用Java和Swing应用程序框架开发桌面应用程序。我有一个关于box的应用程序,我希望该box包含一些有关正在测试哪个版本的指示。我希望该值可以自动更改。我正在使用CruiseControl构建从SVN提交触发的应用程序。 他人使用什么机制来完成这项工作?是否有一个关于Box版本号的库或一组与蚂蚁相关的工具,我可以在构建过程中使用它们? 我不是在寻找部署选项,也不是在寻找自动

  • 我正在使用第二代Google Cloud Sql,并在灵活的环境中运行应用程序引擎实例。应用程序引擎连接到云sql以运行sql查询。我已经设置了一个连接池,以创建最少10个连接,最多200个连接。 然而,我读到了这篇文章——https://cloud.google.com/sql/docs/mysql/diagnose-issues其中写道:“在标准环境中运行的每个应用引擎实例与Google Cl

  • 问题内容: 我正在研究将由学校使用的应用程序。每所学校将建立自己的数据库。每个学校都会为应用程序提供自己的“设置”文件。设置文件将包含创建设置文件的特定学校的数据库URL。这样一来,使用该应用程序的学生如果想连接到其他数据库,就只能加载其他设置文件。 我的问题是,如何保护用于连接数据库的用户名和密码?因此,只有应用程序具有对数据库的读写访问权限。应用程序仅具有该特定学校的读写权限吗? 如果您需要更

  • 我想用“OpenOrCreateDatabase”创建一个SQLLite数据库。问题是,我在创建一个新表时出现了一个错误。 这是我的代码: 怎么了? 多谢!

  • 问题内容: 我已经在尝试 开发的JSF Web应用程序中连接到数据库。使用Windows 7,NetBeans 6.9.1,SQLServer 2008,Glassfish 3.3。 我正在使用从 成功连接到SQLServer 2005的XP系统复制的sqljdbc4.jar驱动程序 。 我已验证SQLServer 2008在我的系统上运行,并且可以 使用要在应用程序中 使用的用户名和 密码通过S

  • 我对在Python中运行的程序停止不感兴趣,当然,control c可以做到这一点。我感兴趣的是以下情况:假设您有一个运行5小时的程序。你让它运行了两个小时,然后决定你到目前为止所做的值得保存,但你仍然不想继续。那么,保存数据并退出程序的最佳方式是什么?直到现在,我所做的是在pickle中存储一个布尔值,然后用每个循环打开pickle并检查其值。如果布尔值为true,则程序继续运行,如果为fals