我有一个Dockerrun.aws.json
文件,该文件使用Beanstalk多容器将芹菜容器部署在EC2实例上。
在每个部署中,默认情况下,Beanstalk或ECS代理会在所有实例上杀死现有的celery容器,然后创建一个新的celery容器。由于芹菜任务无法完成,因此未成熟杀死了芹菜任务。
芹菜容器具有supervisord
,它实际上监视芹菜过程,并在芹菜下降时将其提起。
有人可以建议我们如何通过允许芹菜容器/过程完成他们已经从SQS消耗的任务来优雅地杀死它们吗?
答案 0 :(得分:0)
一种解决方案是创建一个任务,您可以使用该任务在部署之前使工作人员处于空闲状态。
基本上,基本上创建一个任务:
您的部署将是: