在迭代所有分片时使用Rails,使用Octopus获取分片名称

时间:2018-04-04 14:25:35

标签: ruby-on-rails sharding octopus

设置: 我有多个相同架构的数据库。每个数据库代表不同站点的数据。我想迭代每个实例并打印出用户计数以及分片名称。我怎么能这样做?

这是我到目前为止的代码:

    Octopus.using_all do
      users = User.all
      ap @shard  # This doesn't work
      ap users.length
    end

1 个答案:

答案 0 :(得分:1)

Shard :: Proxy中有一个返回分片名称的方法,但是我找不到一种明显的方法来检索分片名称。

我认为您必须手动迭代分片名称列表。

%i(shard_1 shard_2 shard_3).each do |shard|
  users = User.using(shard).all
  ap shard 
  ap users.length
end