是的,路径没问题:
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),则需要使用该服务的安全组设置对其进行开放式连接,否则将无法连接。
注意事项:
- 如果您在实例上播放,请记住有关virtualenv的信息。因此,您可以运行以下命令:
cd / opt / python / current / app &&来源/ opt / python / run / venv / bin /
activate && python manage.py
“ importError:没有名为’wellfie’的模块”可能会发生一次,并由于系统正在启动并且进程可能尚未就绪而被登录到celery-beat.log,celery-worker.log中。
importError(’没有名为xxxx.toi3pr.0001.usw2.cache.amazonaws.com的模块’)看起来像python初始化问题。
修改文件 root_folder / django_app / init.py :
from __future__ import absolute_import, unipre_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-workersupervisorctl -c /opt/python/etc/supervisord.conf restart celeryd-beat



