sql >> Database >  >> NoSQL >> Redis

Django Celery Elastic Beanstalk bewaakt geen dergelijke procesfout

Ja, het pad is in orde:

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

Ik heb gemerkt dat je je PYTHONPATH-variabele twee keer hebt ingesteld, zoals je zou overschrijven met eb-omgevingseigenschap? Eenmaal ingesteld op applicatie en vervolgens op applicatie wellfie pakket.

Uw logboekinvoer:

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"

Mijn:

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"

Dus ik zou beginnen met dat te onderzoeken. Een ander ding om in gedachten te houden is dat als je sommige AWS-services zoals Redis gebruikt, je een open verbinding nodig hebt met beveiligingsgroepinstellingen voor die service, anders kun je geen verbinding maken.

Dingen om in gedachten te houden:

  1. Als je op de instantie speelt, onthoud dan virtualenv. Dus je voert je commando's uit zoals:

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

  2. "ImportError:Geen enkele module met de naam 'wellfie'" mag één keer voorkomen en ingelogd zijn op celery-beat.log, celery-worker.log" aangezien het systeem wordt gestart en het proces mogelijk nog niet gereed is.

  3. ImportError('Geen module met de naam xxxx.toi3pr.0001.usw2.cache.amazonaws.com',) lijkt op een python-initialisatieprobleem.

Wijzig bestand 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']

Oplossing was om te veranderen:

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

in

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



  1. Hoe zet je een pymongo.cursor.Cursor om in een dictaat?

  2. Hoe een willekeurig record in Mongoose te vinden

  3. Gebruik $gte en <e mongo-operator als datum in tekenreeksformaat is in mongodb

  4. hoe een bestand te downloaden dat is opgeslagen in gridFS met behulp van nodeJS