Ruby 为什么我的Heroku应用程序的PostgreSQL数据库上有打开的连接?如何关闭它们?

Ruby 为什么我的Heroku应用程序的PostgreSQL数据库上有打开的连接?如何关闭它们?,ruby,postgresql,heroku,sinatra,Ruby,Postgresql,Heroku,Sinatra,我的Heroku应用程序是 通常,当我在GitBash中运行pg:info来查看有多少连接时,这个数字是零 最近,我看到流量激增——不多,在过去48小时内只有1000多点——当我在东部时间今天上午11点左右运行pg:info时,结果显示有4到5个开放连接 我的应用程序使用Ruby gem Sinatra运行。在Sinatra文件中,我有以下代码: after do DB.disconnect end 加载页面后,after do循环将断开与PostgreSQL数据库的连接 变量DB包含

我的Heroku应用程序是

通常,当我在GitBash中运行pg:info来查看有多少连接时,这个数字是零

最近,我看到流量激增——不多,在过去48小时内只有1000多点——当我在东部时间今天上午11点左右运行pg:info时,结果显示有4到5个开放连接

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

after do
    DB.disconnect
end
加载页面后,after do循环将断开与PostgreSQL数据库的连接

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

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

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

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

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


数据库也可能有各种维护任务(如备份)打开的连接。

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

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


数据库也可能有通过各种维护任务(如备份)打开的连接。

检查Heroku上打开的连接数的另一种方法是将其键入控制台/终端,并用应用的名称替换myapp:


heroku pg:info-myapp检查heroku上打开的连接数的另一种方法是在控制台/终端中键入此内容,并用应用程序的名称替换myapp:


heroku pg:info-我的应用程序

我抓到了下面的toolbelt附加组件,它工作得非常好


heroku pg:killall-app xyz

我抓到了下面的toolbelt附加组件,它工作得非常好

heroku pg:killall-应用程序xyz

看这里:看这里: