ruby-on-rails - sidekiq Ruby 脚本后 Postgres 连接未关闭

标签 ruby-on-rails ruby postgresql sidekiq

这是一个在 Sidekiq 下运行的小型 Rub​​y 脚本。它打开与

的连接
    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、Rails 4.0.0、ruby 2.1.1p76、sequel 4.19.0、Ubuntu 14.04.2 LTS。

最佳答案

您可以:

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

关于ruby-on-rails - sidekiq Ruby 脚本后 Postgres 连接未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30268605/

相关文章:

ruby-on-rails - 如何将使用 Active Storage 上传的 pdf 转换为 rails 中的图像

ruby-on-rails - rails/ ruby : Get Last 4 Digits of Credit Card

ruby-on-rails - 非负整数和小数值的验证

ruby-on-rails - 更改索引页 - Ruby on Rails

ruby - puppet 通知 Exec 不起作用

ruby-on-rails - 搜索表单不起作用,并在 Rails 应用程序中出错

ruby rspec 不能与 simplecov 一起使用

mysql - 在 Ruby on Rails 中,如何使用 dafult db 连接对象向数据库发送多个更新语句?

sql - 将 Least 与 DatePart 一起使用?

python - 如何从 Python 调用 Postgres 11 存储过程