我正在寻找在Elastic Beanstalk环境中运行Celery的直接方式。这是否存在,或者我是否需要使用SQS?
我已经尝试在.config文件中添加一行而没有很好的结果。这是我的.config文件:
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 &"
当我ssh到EC2服务器并运行ps -ef | grep celery
时,它显示Celery没有运行。
任何帮助表示赞赏。谢谢!
答案 0 :(得分:4)
Celery未显示,因为容器命令在部署期间重新启动Web服务器之前运行。基本上,您的芹菜工人在机器重新启动后会被清除。
我建议使用post deployment钩子启动芹菜。
请参阅http://junkheap.net/blog/2013/05/20/elastic-beanstalk-post-deployment-scripts/和How do you run a worker with AWS Elastic Beanstalk?