我们在 rails2.3/postgresql/resque
应用程序中改用 Octopus 进行分片,因为我们已经最大化了数据库服务器的磁盘 I/O。我们有十个数据库,每个数据库都有多个分片。 (分片包含架构搜索路径)。
我们的一些跨多个客户的流程非常慢。
代码结构如下:
User.each do |u|
Octopus.using(u.shard.to_sym) do
update data
end
end
我们怀疑问题是 Octopus 不断打开和关闭数据库连接。
这就是八达通的工作原理吗?它可以保留数据库连接池吗?
最佳答案
ar-octopus 0.3.4 中可能存在错误。它已通过以下提交修复:
https://github.com/tchandy/octopus/commit/0c71fa228c3a9d659482a0dee8be5b4bd47493eb
唯一的变化是从 self.using 中删除“hijack_initializer”。
关于ruby-on-rails - Octopus 可以保留数据库连接池吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919078/