Celery로 실행해야하는 장고 응용 프로그램 (pcycler)이 있습니다. Supervisor와 함께 프로덕션 환경에이를 배포하려고합니다. 저를 제공Supervisor Directory가 Celery 프로그램에 전파되지 않음
supervisorctl start celery
:
은 내가 실행 오류가 발생
celery: ERROR (abnormal termination)
다음은 시작에 supervisor.conf에 포함되어 내 celery.conf 파일입니다.
[program:celery]
command=/webapps/pcyclerenv/bin/celery -A pcycler worker -l info
directory=/webapps/pcyclerenv/pcycler
user=pcycleruser
numprocs=1
stdout_logfile=/webapps/pcyclerenv/logs/celeryd_stdout.log
stderr_logfile=/webapps/pcyclerenv/logs/celeryd_stderr.log
redirect_stderr=false
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
killasgroup=true
priority=998
celeryd_stderr.log의 내용은 다음과 같습니다
Traceback (most recent call last):
File "/webapps/pcyclerenv/bin/celery", line 11, in <module>
sys.exit(main())
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/__main__.py", line 30, in main
main()
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/bin/celery.py", line 81, in main
cmd.execute_from_commandline(argv)
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/bin/celery.py", line 769, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/bin/base.py", line 304, in execute_from_commandline
argv = self.setup_app_from_commandline(argv)
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/bin/base.py", line 464, in setup_app_from_commandline
self.app = self.find_app(app)
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/bin/base.py", line 484, in find_app
return find_app(app, symbol_by_name=self.symbol_by_name)
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/app/utils.py", line 222, in find_app
sym = symbol_by_name(app, imp=imp)
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/bin/base.py", line 487, in symbol_by_name
return symbol_by_name(name, imp=imp)
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/kombu/utils/__init__.py", line 92, in symbol_by_name
module = imp(module_name, package=package, **kwargs)
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/utils/imports.py", line 101, in import_from_cwd
return imp(module, package=package)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named pcycler
당연히, 나는이 오류 복제 할 수 있는지, 자신이이 프로그램을 실행하기로 결정 :
[email protected]:/webapps/pcyclerenv/pcycler$ pwd
/webapps/pcyclerenv/pcycler
[email protected]:/webapps/pcyclerenv/pcycler$ /webapps/pcyclerenv/bin/celery -A pcycler worker -l info
(... text and pickle deprecation warnings ...)
[2014-05-23 14:52:36,053: WARNING/MainProcess] /webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/fixups/django.py:233: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!
warnings.warn('Using settings.DEBUG leads to a memory leak, never '
[2014-05-23 14:52:36,066: WARNING/MainProcess] [email protected] ready.
을 그렇게 작동합니다. 그러나 다음과 같은 잘못된 디렉토리에있을 때 :
[email protected]:/webapps/pcyclerenv/pcycler$ cd ..
[email protected]:/webapps/pcyclerenv$ pwd
/webapps/pcyclerenv
[email protected]:/webapps/pcyclerenv$ /webapps/pcyclerenv/bin/celery -A pcycler worker -l info
Traceback (most recent call last):
File "/webapps/pcyclerenv/bin/celery", line 11, in <module>
sys.exit(main())
File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/__main__.py", line 30, in main
main()
(... exact same error as above ...)
ImportError: No module named pcycler
오류 로그에있는 것과 정확히 같은 오류가 발생합니다! 이로 인해 관리자가 실행 중일 때 디렉토리가 제대로 변경되지 않는다고 가정합니다.
tldr : supervisorctl을 사용하여 명령을 실행할 때 내 supervisor.conf의 디렉토리가 적용되지 않는 이유는 무엇입니까?
나를 위해 작동하지 않습니다. ( – Hanynowsky