【发布时间】:2016-11-23 08:32:47
【问题描述】:
我在使用 Sequel gem 和 Postgres 时遇到了一些池化问题。 我相信我的 Sidekiq 作业不会从池中释放他们使用的连接。
我在启动 Sidekiq 时连接到数据库:
DB = Sequel.connect(db_uri, max_connections: 20)
我在想一些 Sidekiq 中间件,像这样:
module Middleware
class SequelDisconnector
def call(*args)
yield
ensure
DB.release_active_pool_connection
end
end
end
我知道有 DB.disconnect 但这完全与数据库断开连接,对吗?我想确保我的工作人员释放其连接,同时不会杀死任何其他工作人员的连接。
有什么办法可以做到这一点,还是我的推理有某种缺陷?
【问题讨论】:
-
是的,Sequel 文档没有很好地解释如何 很好地使用连接池。看起来您确实需要调用
disconnect来释放与池的连接。我浏览了宝石,但我仍然不完全确定。
标签: ruby postgresql sidekiq sequel