Celery: 到達したクライアントの最大数

作成日 2015年09月17日  ·  3コメント  ·  ソース: celery/celery

私はセロリとredisでdjangoを使用しています。
このエラーが発生し続けますredis.exceptions:ResponseErrorクライアントの最大数に達しました
私はherokuを使用しており、redisバックエンドの最大接続数は400です。メインアプリでは20 dynoを実行し、セロリでは5dynoを実行しています。 接続の最大数を設定するにはどうすればよいですか? 私はそれを私のcelery.pyに次のように入れてみました:

from __future__ import absolute_import

import os

from celery import Celery

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'imdowntags.settings')

from django.conf import settings

app = Celery('imdowntags',
             broker=os.environ['REDIS_URL'],
             backend=os.environ['REDIS_URL'],
             include=['imdowntags.tasks'])

# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
app.conf.update( CELERY_REDIS_MAX_CONNECTIONS = 20,)

また、settings.py内にCELERY_REDIS_MAX_CONNECTIONS = 20を入れてみました

最も参考になるコメント

こんにちは@ask
celery 4.0のリリース後に問題は解決しましたか?
celery-3.1.23とredis-2.6でも同じ問題が発生します。
redisのデフォルトのmaxclientsは10000で、celeryを3か月実行した後、redisクライアントは10000に増加します。
redisサーバーの接続がいっぱいであることがわかりましたが、セロリには(netstatによる)接続がほとんどないため、redisサーバーを再起動すると機能します。
しかし、設定やその他の方法で問題を解決するにはどうすればよいですか?

全てのコメント3件

このタスクを完了するためのリソースがないため、これを閉じます。

マスターで修正される可能性があります。4.0リリース後に戻ってくるかどうか見てみましょう。

BROKER_POOL_LIMIT=0が同様の問題を解決すると言う人もいます: http ://stackoverflow.com/questions/12013220/celery-creating-a-new-connection-for-each-task

これは@askに関連付けることができますか?

こんにちは@ask
celery 4.0のリリース後に問題は解決しましたか?
celery-3.1.23とredis-2.6でも同じ問題が発生します。
redisのデフォルトのmaxclientsは10000で、celeryを3か月実行した後、redisクライアントは10000に増加します。
redisサーバーの接続がいっぱいであることがわかりましたが、セロリには(netstatによる)接続がほとんどないため、redisサーバーを再起動すると機能します。
しかし、設定やその他の方法で問題を解決するにはどうすればよいですか?

このページは役に立ちましたか?
0 / 5 - 0 評価