芹菜可以在Elastic Beanstalk上运行吗?

时间:2014-11-10 19:17:33

标签: django amazon-web-services celery elastic-beanstalk amazon-elasticache

我正在寻找在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没有运行。

任何帮助表示赞赏。谢谢!

1 个答案:

答案 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?