ruby-on-rails - Rails 上的 Psubscribe redis 命令

标签 ruby-on-rails redis

在我的 Rails 应用程序中,我启动了一个工作程序来根据模式订阅多个 channel 。为此,我使用 psubscribe 如下:

REDIS.psubscribe("*:expire") do |on|
  on.message do |event, data|
    puts 'Acquired'
  end
end

在我调用的特定 Controller 上:

REDIS.publish("key:expire", "testing")

如果我使用带有字符串“key:expire”的订阅,这将非常有效。但是 psubscribe 不起作用。任何人在 Rails 上使用 psubscribe 时都会遇到问题。

提前致谢

最佳答案

经过长时间的实验,我找到了这个解决方案, 当你进行 psubscribe 时,你应该使用“pmessage”而不是“message”。此外,pmessage 在订阅中接收三个参数而不是两个参数。

REDIS.psubscribe("*:expire") do |on|
 on.pmessage do |event, channel, data|
   puts 'Acquired'
 end
end

很有魅力。

关于ruby-on-rails - Rails 上的 Psubscribe redis 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009079/

相关文章:

ruby-on-rails - 在 Ruby on Rails 中显示有向图

sql - 通过 named_scope 返回对象数组 -- has_many...belongs_to 关联; UNION ALL 查询

session - Spring boot 2.0/Tomcat 8.5 - 日志文件中的 session 属性

redis - Celery、zmq、分布式系统的消息传递方法

redis - 如何知道jedis消息有没有推送

ruby-on-rails - 从 Ruby 1.9.2 升级到 1.9.3,我应该重新安装所有 gem 吗?

javascript - 找不到文件 'jquery.ui.sortable'

ruby-on-rails - Ruby on Rails 功能未按预期工作

ruby - 如何同时读取 Ruby 中的多个缓存键?

mongodb - 滑动/匹配的后端如何在基于滑动的应用程序中工作?