Redis
 sql >> база данни >  >> NoSQL >> Redis

Надзорникът на Django Celery Elastic Beanstalk няма такава грешка в процеса

Да, пътят е наред:

command=/opt/python/run/venv/bin/celery worker -A wellfie --loglevel=INFO

Забелязах, че вашата променлива PYTHONPATH е зададена два пъти, както бихте презаписали със свойството на средата eb? След като е настроен на приложението и след това на пакета на приложението wellfie.

Вашият запис в дневника:

environment=
PYTHONPATH="/opt/python/current/app/:",
PATH="/opt/python/run/venv/bin/:%ENV_PATH)s",
RDS_PORT="5432",
PYTHONPATH="/opt/python/current/app/wellfie:",
REDIS_URL="bbbbb.bbbbb.0001.usw2.cache.amazonaws.com:6379",
RDS_DB_NAME="bbbdb",
DJANGO_SETTINGS_MODULE="wellfie.settings",
RDS_USERNAME="aaaa",
RDS_PASSWORD="bbbb",
RDS_HOSTNAME="bbbbb.bbbbb.us-west-2.rds.amazonaws.com"

Моят:

environment=
PYTHONPATH="/opt/python/current/app/:",
PATH="/opt/python/run/venv/bin/:%(ENV_PATH)s",
WEBSERVER="APACHE",
CNAME="xxxxx-prod-env",
PYCURL_SSL_LIBRARY="nss",
APP_ENV="prod"

Така че бих започнал с разследването на това. Друго нещо, което трябва да имате предвид, е, че ако използвате някои AWS услуги като Redis, имате нужда от отворена връзка към нея с настройки на групата за сигурност за тази услуга, в противен случай няма да можете да се свържете.

Неща, които трябва да имате предвид:

  1. Ако играете на инстанцията, не забравяйте за virtualenv. Така че изпълнявате команди като:

    cd /opt/python/current/app &&източник /opt/python/run/venv/bin/activate &&python manage.py

  2. „ImportError:Никой модул с име „wellfie“ може да се случи веднъж и да бъде влязъл в celery-beat.log, celery-worker.log“, тъй като системата се стартира и процесът може да не е готов още.

  3. ImportError('Няма модул с име xxxx.toi3pr.0001.usw2.cache.amazonaws.com',) изглежда като проблем с инициализацията на python.

Променете файл root_folder/django_app/__init__.py :

from __future__ import absolute_import, unicode_literals

# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from django_app.celery import app as celery_app

__all__ = ['celery_app']

Поправката беше да се промени:

supervisorctl -c /opt/python/etc/supervisord.conf restart celeryd 

в

supervisorctl -c /opt/python/etc/supervisord.conf restart celeryd-worker
supervisorctl -c /opt/python/etc/supervisord.conf restart celeryd-beat



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis при отказ със StackExchange / Sentinel от C#

  2. Изчакайте обратно извикване на асинхронна функция в последното събитие stream.on('data').

  3. Наистина ли се предполага, че Redigo Redis Pool е глобална променлива?

  4. Redis Hash Pagination

  5. Как да конфигурирам redis-cluster, когато използвате spring-data-redis 1.7.0.M1