【问题标题】:How to subscribe multiple publisher in redis rails?如何在 redis rails 中订阅多个发布者?
【发布时间】:2015-07-27 06:00:45
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    对于多频道订阅,您应该这样做

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

    参考:github source code

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

    【讨论】:

    • 非常感谢@admaliesko。即使我做了同样的事情,但我没有将配置保存为数组。而是将它们保存为字符串。