2016-08-02 2 views
0

В моей локальной среде я использовал сельдерей для задания расписания, он работает в локальной системе, я использовал redis как рабочий сейчас я хочу настроить django сельдерей на сервере heroku Я попытался использовать герою -redis дополнения в Heroku приложениеКак настроить django-сельдерей на сервере heroku

добавил этот материал в моем settings.py сельдерей STUFF

#BROKER_URL = 'redis://localhost:6379' 
#BROKER_URL = 'os.environ['REDIS_URL']' 
#BROKER_URL = os.environ.get('REDIS_URL', 'redis://localhost:6379') 
r = redis.from_url(os.environ.get("REDIS_URL")) 
BROKER_URL = redis.from_url(os.environ.get("REDIS_URL")) 
#CELERY_RESULT_BACKEND = 'redis://localhost:6379' 
#CELERY_RESULT_BACKEND = 'os.environ['REDIS_URL']' 
CELERY_RESULT_BACKEND = os.environ.get('REDIS_URL') 
CELERY_ACCEPT_CONTENT = ['application/json'] 
CELERY_TASK_SERIALIZER = 'json' 
CELERY_RESULT_SERIALIZER = 'json' 
CELERY_TIMEZONE = 'Canada/Eastern' 

redis_url = urlparse.urlparse(os.environ.get('REDIS_URL')) 
CACHES = { 
"default": { 
"BACKEND": "redis_cache.RedisCache", 
"LOCATION": "{0}:{1}".format(redis_url.hostname, redis_url.port), 
"OPTIONS": { 
"PASSWORD": redis_url.password, 
"DB": 0, 
} 
} 
} 

после того, как в моем PROCFILE я добавил

web: gunicorn bizbii.wsgi --log-file - 
worker : celery workder -A tasks.app -l INFO 
python manage.py celeryd -v 2 -B -s celery -E -l INFO 

, но до сих пор задача не запускается после этого я запустить команду для журнала, так что вернуть

2016-07-30T08:53:19+00:00 app[heroku-redis]: source=REDIS sample#active-connections=1 sample#load-avg-1m=0.07 sample#load-avg-5m=0.075 sample#load-avg-15m=0.07 sample#read-iops=0 sample#write-iops=0 sample#memory-total=15664876.0kB sample#memory-free=13426732.0kB sample#memory-cached=460140kB sample#memory-redis=299616bytes sample#hit-rate=1 sample#evicted-keys=0 

после этого создать дино с этой командой Heroku выполнения Баш -a bizbii2

и выполнить следующую команду питона manage.py celeryd -v 2 -B -s celery -E -l INFO

поэтому он возвращает ошибку, например [2016-08-03 08: 23: 26,506: ERROR/Beat] beat: Ошибка соединения: [Errno 111] Соединение отклонено. Повторное повторение за 8.0 секунд ... [2016-08-03 08: 23: 26,843: ERROR/MainProcess] потребитель: не удается подключиться к amqp: // guest: **@127.0.0.1: 5672 //: [Errno 111 ] В соединении отказано. Попытка снова в 8.00 секунд ...

Пожалуйста, дайте мне предложение, как мы разместим сельдерей на Heroku сервере

ответ

0

Я имел эту точно проблему. Я обновил свой PROCFILE с помощью следующей строки и исчезает ошибка:

worker: celery -A TASKFILE worker -B --loglevel=info 

Заменить TASKFILE с, например: proj.celery или proj.tasks. Это зависит от того, где вы ставите задачи.