在我的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”的subscribe,这将非常有效。但是psubscribe无效。任何人在Rails上使用psubscribe都会遇到问题。

提前致谢

最佳答案

经过长时间的实验,我发现了这种解决方案,
在进行psubscribe时,应使用“pmessage”而不是“message”。同样,pmessage在订阅中接收三个参数,而不是两个。

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

奇迹般有效。

09-27 18:50