我有一个Dockerrun.aws.json
文件,它使用Beanstalk多容器在EC2实例上部署芹菜容器。
在每次部署时,默认情况下,Beanstalk或ECS代理程序会杀死所有实例上的现有芹菜容器,然后创建一个新的芹菜容器。这会导致芹菜任务不成熟,因为任务无法完成,所以会产生问题。
芹菜容器有supervisord
,它实际上监控芹菜过程并在它下降时将其提起。
有人可以建议我们如何通过允许他们完成他们已经从SQS消耗的任务来优雅地杀死芹菜容器/过程?
一种解决方案是创建一个任务,您可以使用该任务在部署之前将工作程序置于空闲状态。
基本上,基本上创建一个任务:
您的部署将是: