在我的rails应用程序上,我启动了一个worker,根据一个模式订阅多个频道。为此,我使用了psubscribe,如下所示:
REDIS.psubscribe("*:expire") do |on|
on.message do |event, data|
puts 'Acquired'
end
end在我调用的特定控制器上:
REDIS.publish("key:expire", "testing")如果我使用带有字符串"key:expire“的subscribe,则可以很好地工作。但是,psubscribe不起作用。任何人在使用psubscribe on Rails时都会遇到问题。
提前感谢
发布于 2016-08-10 17:49:49
经过长时间的实验,我找到了这个解决方案,当你做psubscribe时,你应该使用"pmessage“而不是"message”。另外,pmessage在订阅中接收三个参数,而不是两个。
REDIS.psubscribe("*:expire") do |on|
on.pmessage do |event, channel, data|
puts 'Acquired'
end
end就像一种护身符。
发布于 2016-06-08 18:39:58
REDIS.psubscribe('__key*@*__:expired')这样对我就行了。查看此处documentation
https://stackoverflow.com/questions/32009079
复制相似问题