3

나는 Elastic Beanstalk 환경에서 Celery를 실행하는 간단한 방법을 찾고 있습니다. 이것이 존재합니까, 아니면 대신 SQS를 사용해야합니까?Celery는 Elastic Beanstalk에서 실행할 수 있습니까?

좋은 결과없이 .config 파일에 줄을 넣으려고했습니다. 내가 EC2 서버에 SSH 및 ps -ef | grep celery을 실행하면이 셀러리가 실행되고 있지 않음을 보여줍니다

container_commands: 
    01_syncdb: 
    command: "django-admin.py syncdb --noinput" 
    leader_only: true 
    02_collectstatic: 
    command: "./manage.py collectstatic --noinput" 
    03_migrate: 
    command: "./manage.py migrate --noinput" 
    04_start_celery: 
    command: "./manage.py celery worker &" 

: 이것은 내의 .config 파일입니다.

도움을 주시면 감사하겠습니다. 감사!

+1

당신이 "좋은 결과없이"에 확장 수를 참조하십시오? 결과는 무엇입니까? 우리에게 보여줄 수있는 오류 메시지가 있습니까? –

+0

좋은 지적. 질문 세부 사항을 업데이트했습니다. Celery는 단순히 상자에서 실행되지 않습니다 (오류가 표시되지 않음). –

답변

4

배치 중에 컨테이너 명령이 웹 서버를 재부팅하기 전에 실행되기 때문에 셀러리가 표시되지 않습니다. 기본적으로 기계가 다시 시작된 후 셀러리 작업자가 지워집니다.

게시 배치 후크를 사용하여 셀러리를 시작하는 것이 좋습니다.

http://junkheap.net/blog/2013/05/20/elastic-beanstalk-post-deployment-scripts/How do you run a worker with AWS Elastic Beanstalk?

+0

실제로, 나는 Elastic Beanstalk에서 https://github.com/rfk/django-supervisor를 사용하여 배포를 통해 지속되는 데몬으로 샐러리 작업자를 실행하는 훨씬 더 깨끗한 방식으로 작업 할 수있었습니다. 이 서비스의 새로운 시작을 보장하기 위해 일부 배치 후크를 추가해야했습니다. –