sql >> Databasteknik >  >> NoSQL >> Redis

Django Celery Elastic Beanstalk handledare inget sådant processfel

Ja, vägen är ok:

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

Jag har märkt att du har ställt in din PYTHONPATH-variabel två gånger, som du skulle skriva över med eb-miljöegenskapen? När det är inställt på applikation och sedan på applikation wellfie-paket.

Din loggpost:

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"

Mitt:

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"

Så jag skulle börja med att undersöka det. En annan sak att tänka på är att om du använder vissa AWS-tjänster som Redis behöver du en öppen anslutning på den med säkerhetsgruppinställningar för den tjänsten, annars kommer du inte att kunna ansluta.

Saker att tänka på:

  1. Om du spelar på instansen, kom ihåg virtualenv. Så du kör dina kommandon som:

    cd /opt/python/current/app &&source /opt/python/run/venv/bin/activate &&python manage.py

  2. "ImportError:Ingen modul med namnet 'wellfie'" kan hända en gång och loggas in på celery-beat.log, celery-worker.log" eftersom systemet startar och processen kanske inte är klar än.

  3. ImportError('Ingen modul med namnet xxxx.toi3pr.0001.usw2.cache.amazonaws.com',) ser ut som ett pythoninitieringsproblem.

Ändra filen 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']

Fixen var att ändra:

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

in i

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



  1. Hur man installerar och konfigurerar Redis på ElasticBeanstalk

  2. Varför redis inte kan ställa in maximalt öppen fil

  3. Redis on Spark:Task kan inte serialiseras

  4. MongoDB $lte Aggregation Pipeline Operator