【问题标题】:Pyramid: run code at exit金字塔:在退出时运行代码
【发布时间】:2014-06-23 17:14:11
【问题描述】:

您将如何在可以访问配置设置的金字塔上运行退出脚本?

我想在退出服务器或出现错误时关闭数据库连接,但找不到访问退出循环的方法。我找到了this SO question,但我不知道如何访问 Configurator 对象以这种方式关闭连接。

【问题讨论】:

  • 相关:金字塔项目页面上有关此问题的错误报告 - github.com/Pylons/pyramid/issues/442
  • 嗯,你使用的是什么 WSGI 服务器?我想出了一种在 CherryPy 中做到这一点的方法,看起来in gunicorn 也有一种方法。

标签: mongodb pyramid pymongo


【解决方案1】:

由于金字塔与持久性无关,它不负责关闭数据库连接。 您的应用程序很可能使用pymongo 连接到 MongoDB。由pymongo.mongo_client.MongoClient 类来关心。

阅读 MongoDB and Pyramid 后,您可以阅读 pinto(最近的工作)如何管理与 MongoDB 的连接,因为 pyramid_mongo 未更新到最新的 PyMongo API。

尽管在请求的生命周期中获取数据库连接存在一些差异,但两者都使用pyramid feature "add_finished_callback" 在请求结束时关闭数据库连接(摘自文档:即使应用程序代码中发生异常防止生成响应。) - 正是您的要求。也意味着,当金字塔关闭并运行您实际想要挂钩的代码时,所有外部数据库连接都已关闭。

【讨论】:

  • 我不是说金字塔应该关闭连接,我想访问退出循环,这样我就可以通过pymongo.Connection关闭连接,问题是我不知道如何...
  • pyramid_mongo 看起来过时了,添加了关于 pinto 的注释,扩展了我的答案
猜你喜欢
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
相关资源
最近更新 更多