如何在redis rails中订阅多个发布者?

时间:2015-07-27 06:00:45

标签: ruby-on-rails redis publish-subscribe

我有来自另一个文件的动态频道。我必须订阅所有频道。但我无法循环访问redis订阅

config=["channel1","channel2","channel3"]
config.each do |ch|
  $redis.subscribe(ch) do |on|
    #on.message......
  end
end

但它订阅了循环中的第一个元素。“config”可以动态变化。

1 个答案:

答案 0 :(得分:1)

对于多频道订阅,您应该像

那样进行
config=["channel1","channel2","channel3"]
  $redis.subscribe(config)
end

参考:github source code

def subscribe(*channels, &block)
  subscription("subscribe", "unsubscribe", channels, block)
end