gpt4 book ai didi

ruby - 使用池时如何释放 Sequel 连接

转载 作者:数据小太阳 更新时间:2023-10-29 08:59:41 25 4
gpt4 key购买 nike

我在使用 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 但它会完全断开与数据库的连接,对吗?我想确保我的工作人员在释放其连接的同时不终止任何其他工作人员的连接。

有什么办法可以做到这一点,还是我的推理存在某种缺陷?

最佳答案

首先,您需要了解您的工作人员不一定使用单个连接,而是可能使用多个不同的连接,除非您专门通过 Database#synchronize 将其限制为单个连接。或 Database#transaction .

您不需要断开特定连接,因为预计连接将保留在 Sequel 的连接池中供以后使用。您是否认为应该断开连接并将其从池中删除?

关于ruby - 使用池时如何释放 Sequel 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39467410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com