首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用redis时,请提高Redis::InheritedError

使用redis时,请提高Redis::InheritedError
EN

Stack Overflow用户
提问于 2013-04-12 06:41:35
回答 3查看 706关注 0票数 1

如果代码导出与redis相关的函数,它将引发

Redis::InheritedError:尝试使用来自子进程的连接而不重新连接。你需要在分叉之后重新连接到Redis。

当redis连接时,它会将spork process.pid保存为@pid,然后redis执行它将使用ensure_connected检查连接,这将由Process.pid != @pid检查。这两个pids是不同的,因此它会引发Redis::InheritedError。

通过谷歌它,

代码语言:javascript
复制
Resque.after_fork do 
  Resque.redis.client.reconnect
end

并重新连接每个规范的redis客户端

他们俩都不为我工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-07 10:25:43

升级到2.6.12后,问题解决了。

票数 0
EN

Stack Overflow用户

发布于 2013-04-22 14:33:33

我在这里找到了解决方案,它对我有效:Hacki.ly

看起来这是在spec_helper.rb中添加以下内容的问题:

代码语言:javascript
复制
RSpec.configure do |config| 
  # ... 
  config.before :all do
    $redis.client.reconnect 
  end 
  # ... 
end

您可能需要将$redis更改为获取对Redis实例的引用所使用的任何内容。

票数 1
EN

Stack Overflow用户

发布于 2013-06-28 16:29:31

通过在spec_helper.rb中添加以下内容,我能够修复这个问题:

代码语言:javascript
复制
Spork.each_run do
  $redis.client.reconnect
end

同样,正如Gabe的答案中提到的,您可能需要将$redis更改为获取对Redis实例的引用所使用的任何内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15964754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档