过去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的了解有限,但我对它应该如何运作有基本的了解。
任何帮助或指导将不胜感激。
答案 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地址进行本地开发,现在一切正常。