在sidekiq Ruby脚本之后Postgres连接没有关闭

时间:2015-05-15 20:57:36

标签: ruby-on-rails ruby postgresql sidekiq

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

的连接
    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)

数据库位于localhost上,因此没有其他任何东西可以创建这些连接。

psql 9.3.6,Sidekiq 3.3.3,Rails 4.0.0,ruby 2.1.1p76,续集4.19.0,Ubuntu 14.04.2 LTS。

1 个答案:

答案 0 :(得分:3)

你可以:

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