在我的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
奇迹般有效。