小编典典

发布到Redis阻碍了我的流程

redis

这是我的红宝石代码:

require 'redis'
redis = Redis.new

Thread.new do
  redis.subscribe('foo_bar') do |on|
    on.message do |key, id|
      puts id
    end
  end
end

redis.publish('foo_bar', 1337)

谁能告诉我,为什么最后一行的“发布”指令阻止了我的进程?

谢谢


阅读 270

收藏
2020-06-20

共1个答案

小编典典

似乎redis.subscribe在整个过程中都阻止了Redis访问。因此,当您尝试发布锁时。

解决方案:尝试使用轮询代替 subscribe

解决方案2:使用多个REDIS连接,即创建REDIS连接池

2020-06-20