2016-06-21 35 views
1

我一直在这个问题上停留了过去3天,并且不确定现在在哪里看。Err max客户端达到Redis/Sidekiq/Rails

我有一个简单的Sidekiq实现到我的Rails应用程序。

我的工作:Rails的4.2.0,4.1.2 Sidekiq,Redis的3.0.6

生产应用与Heroku的现场运行,并且我有1个工人测功机和1条网络赛道。

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

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

CLIENT KILL TYPE normal

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

Err max clients reached

我的假设是,不知何故在本地,我指挥sidekiq工作过Redis的生产网址。我不得不承认我对Redis的了解,而Sidekiq是有限的,但我对它应该如何工作有基本的了解。

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

回答

1

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

1

这最终是一个配置错误。以防万一任何人绊倒这个问题,希望这将帮助他们不要忽视像我这样的事情。

只有当我启动我的本地服务器时才会发生此问题,所以我知道它与本地有什么关系。我注意到,在我的产品redis中:cli我看到客户在ADDR列中拥有本地IP。

这使我相信我的本地计算机正在将客户端推向我的生产Redis服务器。看到我的日志,当我启动我的Proc文件时,我看到了Redis网址,因此只能确认它。

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

相关问题