Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Django Celery Elastic Beanstalk tidak ada kesalahan proses seperti itu

Ya, jalannya oke:

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

Saya perhatikan bahwa Anda memiliki variabel PYTHONPATH yang disetel dua kali, seperti yang akan Anda timpa dengan properti lingkungan eb? Setelah diatur pada aplikasi dan kemudian pada paket aplikasi wellfie.

Entri log Anda:

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"

Saya:

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"

Jadi saya akan mulai menyelidikinya. Hal lain yang perlu diingat adalah jika Anda menggunakan beberapa layanan AWS seperti Redis, Anda memerlukan koneksi terbuka dengan pengaturan grup keamanan untuk layanan itu, jika tidak, Anda tidak akan dapat terhubung.

Hal-hal yang perlu diperhatikan:

  1. Jika Anda bermain di instance, ingat tentang virtualenv. Jadi Anda menjalankan perintah Anda seperti:

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

  2. "ImportError:Tidak ada modul bernama 'wellfie'" yang mungkin terjadi satu kali, dan masuk ke celery-beat.log, celery-worker.log" karena sistem dimulai dan proses mungkin belum siap.

  3. ImportError('Tidak ada modul bernama xxxx.toi3pr.0001.usw2.cache.amazonaws.com',) sepertinya masalah inisialisasi python.

Ubah file 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']

Perbaikan adalah mengubah:

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

ke dalam

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. Antrian demokrasi di Sidekiq

  2. apa itu pagecache, dentries, inode?

  3. Bagaimana cara menginstal Predis di windows XAMPP?

  4. NodeJS - terhubung dengan aman ke server redis eksternal

  5. Apakah ini penggunaan ServiceStack Redis yang valid?