2016-06-21 70 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地址,現在一切正常。

相關問題