Err max客户到达了Redis / Sidekiq / Rails

时间:2016-06-21 00:18:12

标签: ruby-on-rails heroku redis sidekiq

过去3天我一直坚持这个问题,不确定现在在哪里看。

我的rails应用程序中有一个简单的Sidekiq实现。

我正在研究:Rails 4.2.0,Sidekiq 4.1.2,Redis 3.0.6

生产应用程序正在使用heroku运行,我有1个工作dyno和1个web dyno。

问题是这个,我不确定如何接近它或我做了什么来做到这一点。

当我在heroku上运行redis-cli时,我可以看到我运行的客户端。最多我在任何给定时间都有2或3个客户端运行。我可以轻松地用

杀死客户

CLIENT KILL TYPE normal

所以这一切都很好,花花公子。事情变得有点棘手的部分是当我在本地启动我的服务器时,我正在开发中。我的redic-cli突然显示我有19个客户正在运行。这将导致我记录

Err max clients reached

我的假设是,在某种程度上我在本地指导sidekiq来处理redis生产网址。我不得不承认我对Redis和Sidekiq的了解有限,但我对它应该如何运作有基本的了解。

任何帮助或指导将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试使用sidekiq -c 3来限制并发性。

答案 1 :(得分:1)

这最终成了配置错误。万一有人偶然发现这个问题,希望这会帮助他们不要忽略像我这样的事情。

这个问题只在我启动我的本地服务器时才发生,所以我知道这与我本地有关。我注意到在我的生产redis:cli我看到的客户端在ADDR列中有我的本地IP。

这让我相信我的本地计算机正在将客户端推送到我的生产Redis服务器。当我启动我的Procfile时查看我的日志,我在那里看到了Redis网址,只是确认了它。

最后在搜索完我的代码后,我发现我实际上已将url添加到我的.env中,所以当我启动服务器时,它正在使用该生产Redis网址。所以我在.env文件redis://127.0.0.1:6379上将其更改为适当的IP地址进行本地开发,现在一切正常。