sidekiq Ruby 脚本后 Postgres 连接未关闭

Postgres connection not closing after sidekiq Ruby script

这是 Sidekiq 下的一个小 Ruby 脚本 运行ning。它打开与

的连接
    db_connect = Sequel.connect(@db_credential, search_path: @namespace)

它从不显式关闭连接;我认为这不是必需的?

脚本已经运行多次,并且它们都完成了,Sidekiq web面板显示没有任务运行正在或排队,Postgres显示60个Sidekiq连接:

postgres=# select count(*) from pg_stat_activity where application_name like '%sidekiq%';
 count 
-------
    60
(1 row)

数据库位于本地主机上,因此没有其他任何东西正在创建这些连接。

psql 9.3.6、Sidekiq 3.3.3、Rails4.0.0、ruby2.1.1p76、sequel4.19.0、Ubuntu14.04.2 LTS.

您可以:

我认为您当前方法的问题在于您通过调用 Sequel.connect 在每个 Sidekiq 任务执行时构建一个新的连接池,并且这些连接一直存在。它们可能需要很长时间才能真正被垃圾收集,如果有的话。