1

CeleryのバックエンドとしてHerokuにRedisをセットアップしようとしています。ローカルで動作していますが、Herokuで次のエラーが発生します(セロリタスクの完了後):ConnectionError:エラー111ローカルホストへの接続:6379。接続拒否。

他の回答からわかることから、REDISTOGO_URLは正しく構成されているように見えますが、redisサーバーがオンラインではないことを示しています。

settings.py:

REDIS_URL = os.getenv('REDISTOGO_URL', 'redis://localhost:6379/0')

タスク.py内:

from celery import Celery
celery = Celery('tasks', backend=settings.CELERY_RESULT_BACKEND, broker=settings.REDIS_URL)

バージョン:

celery==3.0.5
celery-with-redis==3.0
django-celery==3.0.4
kombu==2.3.2
redis==2.6.0
4

2 に答える 2

2

REDISTOGO_URLエラーメッセージに次のように表示されているため、を使用していないようです。localhost

チェックしてみてください:

  1. heroku config、REDISTOGO_URLがconfigに設定されていることを確認するだけ
  2. herokuのシェルに移動して(このように)、PythonがURLを正しく取得するかどうかを確認します

他のサーバーの構成を確認しない場合は、同じアプリでセロリを実行しますか?

于 2012-08-05T02:20:45.030 に答える
1

Found the problem. I had the celery backend configured to the string 'redis' rather than the REDIS_URL.

What I had:

CELERY_RESULT_BACKEND = 'redis'

What it should be:

CELERY_RESULT_BACKEND = REDIS_URL

Dmitry - appreciate your help.

于 2012-08-05T20:22:22.987 に答える