【问题标题】:Why are there open connections on my Heroku app's PostgreSQL database? How do I close them?为什么我的 Heroku 应用程序的 PostgreSQL 数据库上有打开的连接?我该如何关闭它们?
【发布时间】:2012-09-14 00:55:15
【问题描述】:

我的 Heroku 应用程序是 www.inflationtrends.com

通常,当我在 Git Bash 中运行“pg:info”以查看有多少连接时,该数字为零。

最近,我看到流量激增 - 不多,在过去 48 小时内只有 1,000 多一点 - 当我今天早上(东部时间上午 11 点左右)运行“pg:info”时,结果显示有 4 或 5 个打开的连接。

我的应用程序使用 Ruby gem Sinatra 运行。在 Sinatra 文件中,我有以下代码:

after do
    DB.disconnect
end

加载页面后,“执行后”循环与 PostgreSQL 数据库断开连接。

变量“DB”包含我的 PostgreSQL 数据库的连接信息(用户名、密码、主机、端口号、SSL 模式要求):

DB = Sequel.postgres(
        db_name,
        :user=>user,
        :password=>password,
        :host=>host,
        :port=>port,
        :sslmode=>sslmode
    )

是否存在打开连接的某些原因?有没有办法关闭这些连接?有没有更有效的方法来处理这种情况?

【问题讨论】:

标签: ruby postgresql heroku sinatra


【解决方案1】:

您是否考虑过您的网站可能正在获得流量?当人们访问您的网站并使用您的应用程序时,连接将被打开。

尝试在您的网页中添加一些跟踪代码(例如 Google Analytics),然后检查记录的访问者数量是否与打开的连接数相匹配。

也有可能是数据库有被各种维护任务打开的连接,比如备份。

【讨论】:

    【解决方案2】:

    在 Heroku 上检查打开的连接数的另一种方法是在控制台/终端中输入此内容并将“myapp”替换为您的应用名称:

    heroku pg:info -a myapp

    【讨论】:

      【解决方案3】:

      我抓住了以下完美运行的工具带插件。

      https://github.com/heroku/heroku-pg-extras#usage

      heroku pg:killall --app xyz

      【讨论】:

        猜你喜欢
        • 2018-05-08
        • 2016-01-12
        • 2014-06-11
        • 1970-01-01
        • 1970-01-01
        • 2014-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多