我在过去的3天里一直在这个问题上陷入困境,现在不确定现在如何看。
我在我的Rails应用程序中有一个简单的SideKiq实现。
我正在研究:Rails 4.2.0,Sidekiq 4.1.2,Redis 3.0.6
生产应用程序正在与Heroku实时运行,我有1个Worker Dyno和1个Web Dyno。
问题是这个问题,我不确定如何处理它或我为此做什么。
当我在Heroku上运行Redis-Cli时,我可以看到我运行的客户。最多我在任何给定时间都有2或3个客户。我可以轻松地用
杀死客户 CLIENT KILL TYPE normal
所以一切都很好。当事情变得有些棘手的一部分是当我本地启动服务器时,我正在开发中。突然间,我的Redic-CLI表明我有19个客户在运行。这将导致我记录
Err max clients reached
我的假设是在某种程度上,我指示Sidekiq在重新生产URL上发挥作用。我必须承认我对Redis和Sidekiq的了解是有限的,但是我对它应该如何工作有基本的了解。
任何帮助或指导将不胜感激。
尝试使用 sidekiq -c 3
限制并发。
这最终是一个配置错误。以防万一任何人都偶然发现这个问题,这将有助于他们不会像我那样忽略我所做的事情。
只有当我启动本地服务器时,这个问题才会发生,所以我知道这与我当地有关。我注意到我的生产Redis:CLI我在ADDR列中看到了我本地IP的客户。
这使我相信我的本地机器正在将客户推向我的生产Redis服务器。看着我的原木时,当我发射procfile时,我在那里看到了redis url,所以只确认了它。
最后,在搜索我的代码后,我发现我实际上将URL添加到了.env中,因此当我启动服务器时,它正在使用该生产REDIS URL。因此,我将其更改为.env文件redis://127.0.0.1:6379
上的本地开发的适当IP地址,现在一切正常工作。