हाँ, रास्ता ठीक है:
command=/opt/python/run/venv/bin/celery worker -A wellfie --loglevel=INFO
मैंने देखा है कि आपके पास अपना PYTHONPATH वैरिएबल दो बार सेट है, जैसे आप ईबी पर्यावरण संपत्ति के साथ ओवरराइट करेंगे? एक बार यह एप्लिकेशन पर और फिर एप्लिकेशन वेलफ़ी पैकेज पर सेट हो जाता है।
आपकी लॉग प्रविष्टि:
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"
इसलिए मैं इसकी जांच शुरू करूंगा। एक और बात ध्यान में रखनी है कि यदि आप रेडिस जैसी कुछ एडब्ल्यूएस सेवाओं का उपयोग करते हैं, तो आपको उस सेवा के लिए सुरक्षा समूह सेटिंग्स के साथ उस पर खुले कनेक्शन की आवश्यकता होगी, अन्यथा आप कनेक्ट नहीं कर पाएंगे।पी>
ध्यान रखने योग्य बातें:
-
यदि आप इंस्टेंस पर खेलते हैं, तो वर्चुअलएन्व के बारे में याद रखें। तो आप कमांड चलाते हैं जैसे:
cd /opt/python/current/app &&स्रोत /opt/python/run/venv/bin/active &&python manage.py
-
"ImportError:'wellfie' नाम का कोई मॉड्यूल एक बार नहीं हो सकता है, और सेलेरी-बीट.लॉग, सेलेरी-वर्कर.लॉग में लॉग इन किया जा सकता है" क्योंकि सिस्टम शुरू हो रहा है और प्रक्रिया अभी तक तैयार नहीं हो सकती है।
-
ImportError('xxxx.toi3pr.0001.usw2.cache.amazonaws.com' नाम का कोई मॉड्यूल नहीं) पाइथन इनिशियलाइज़ेशन इश्यू जैसा दिखता है।
फ़ाइल को संशोधित करें 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