【发布时间】:2013-04-12 06:41:35
【问题描述】:
如果代码执行redis相关函数,会引发
Redis::InheritedError: 试图使用来自子进程的连接而不重新连接。分叉后需要重新连接Redis。
当 redis 连接时,它将 spork process.pid 保存为@pid,然后 redis 执行它将使用ensure_connected 检查连接,这将通过Process.pid != @pid 进行检查。而且这两个pid不同,所以会引发Redis::InheritedError。
谷歌,
Resque.after_fork do
Resque.redis.client.reconnect
end
并根据规范重新连接redis客户端
这两个都不适合我。
【问题讨论】: