2016-06-21 8 views
1

私は過去3日間この問題に悩まされています。最大クライアント数がRedis/Sidekiq/Railsに達しました

私は自分のレールアプリに簡単なSidekiqの実装をしています。

私が働いている:Railsの4.2.0、4.1.2 Sidekiq、Redisの3.0.6

は生産アプリはHerokuので生きて実行されている、と私は1つのワーカーダイノと1つのウェブダイノを持っています。

問題はこれであり、これにアプローチする方法やこれを行うために行ったことがわかりません。

herokuでredis-cliを実行すると、実行しているクライアントが表示されます。ほとんどの場合、いつでも2人または3人のクライアントが稼動しています。私は簡単にだからそれはすべての罰金とダンディです

CLIENT KILL TYPE normal

をクライアントに殺すことができます。物事がちょっとやりにくい部分は、サーバーをローカルで起動するときです。開発中です。私の19人のクライアントが走っていることが突然私の赤字になってしまった。これは私になります

Err max clients reached

をロギング私の仮定は、何らかの形でローカルに私はRedisの生産のURLをオフに動作するようにsidekiqを演出していますということです。 RedisとSidekiqについては、私が知っていることは限られていると認めなければなりませんが、どのように動作するべきかを基本的に理解しています。

ご迷惑をおかけして申し訳ございません。

答えて

1

sidekiq -c 3を使用して同時性を制限してみてください。

1

これは設定エラーです。ちょうど誰かがこの質問にうかがってしまったらうまくいけば、これは私のようなものを見落とさないように助けてくれるでしょう。

この問題はローカルサーバーを起動しているときにのみ発生していたため、ローカルで私と関係があるとわかっていました。私は私の生産上のredisに気付きました:cli私はADDR列の私のローカルIPを持っているクライアントを見ていました。

これは私のローカルマシンが私の生産Redisサーバーにクライアントを押し込んでいると信じさせました。 Procfileを起動したときのログを見ると、そこにRedisのURLがあるので、確認しただけです。

最後に私のコードを検索した後、実際に私の.envにURLを追加したことがわかりました。私のサーバーを起動すると、そのRedis urlを使用していました。そこで、私は自分の.envファイルredis://127.0.0.1:6379でローカル開発用の適切なIPアドレスに変更しましたが、すべて正常に動作しています。

関連する問題